导读:很多朋友问到关于arraylist存放的最大数据是多少的相关问题,本文首席CTO笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!
c# arraylist 理论最大长度是多少?
默认容量为16,根据数据长度动态分配,没有限制长度。非要说个限制,其性能应该取决于运行机可支配内存的大小。
java中list最多可以存储多少条数据
从语言上来看,java.util.List是个接口,其下有N多实现,最常用的是ArrayList和LinkedList及其各种继承或同步化实现(如Vector/Queue/Stack这些的)
ArrayList内部是拿数组存储,那么上限就是Integer.MAX_VALUE
LinkedList内部是个链表,理论上是无限的
另外,List里放的东西都是在内存里的(当然你也可以自己实现一个放磁盘上的),因此能放多少也取决于放的东西的大小以及种类。
大小方面很容易计算,一个对象如果1K,那400,000个就至少要占用400M的内存(不算其他占用)。
而虚拟机内存分类方面,如果是普通对象,一般占用的都是堆(Heap)空间,如果是常量或是类似String.intern()出来的东东,则占用的是永生带(Permanent Generation)。
实际开发中,虚拟机默认内存大小根据不同的虚拟机实现有所不同,可以在启动应用时用-Xmx调整最大堆大小,比如调整堆最大大小为2G:
所以40万是放得下的
Java中ArrayList最大容量为什么是Integer.MAX
因为arraylist的容量使用int值指定的,所以就限制在Integer.MAX来指定。
List arrayList = new ArrayList(CAPACITY_SIZE);
即指定默认容量大小的方式。
((旧容量 * 3) / 2) + 1
arraylist中最多能放多少元素
目前ArrayList的size方法返回的是一个int,所以它最多能放Integer.MAX_VALUE((2^31)-1)个元素。
你可以估计元素的大小来估计你的程序会占用多少内存啊。写一个简单的程序,在里头把一万个(或更多;越多越准)DB数据元素放进一个ArrayList然后用一句System.in.read()防止程序的终止,此时打开Task Manager就知道整个程序占用多少内存从而能估计一个元素的大小。
话说回来,如果一个程序里什么都没有,就只有一个装满的ArrayListInteger,那程序会占用多少内存空间呢?
2147483647 × 32 bits = 68719476704 bits
大约8GB!
谁家有那么多内存?
结语:以上就是首席CTO笔记为大家整理的关于arraylist存放的最大数据是多少的全部内容了,感谢您花时间阅读本站内容,希望对您有所帮助,更多关于arraylist存放的最大数据是多少的相关内容别忘了在本站进行查找喔。