最大。 Java中List的长度
java中List的最大长度是多少? 我的意思是列表中可以存储多少个最大元素?
Integer.MAX_VALUE
或者是低的堆将是极限
在你得到接近Integer.MAX_VALUE
数量的元素之前,你很可能会用完堆空间,但是让我们看看如果我们有无限的内存并尝试向List
添加超过Integer.MAX_VALUE
元素会发生什么:
1)ArrayList:
ArrayList将尝试增加其容量:
int newCapacity = (oldCapacity * 3)/2 + 1;
此计算将溢出, newCapacity
实际上将小于Integer.MAX_VALUE
。 然后, ArrayList
将尝试将原始数组中的元素复制到较小的数组中,从而丢失元素。
2)LinkedList:
一旦越过Integer.MAX_VALUE
限制, LinkedList
更好一些。 它将继续保持元素,但size
属性将受到整数溢出的影响,并将影响使用它的其他操作。
这取决于具体的列表实现。 大多数人认为它是Integer.MAX_VALUE
但并不仅限Integer.MAX_VALUE
。 事实上, size()
方法的文档仅指出 :
如果此列表包含多个
Integer.MAX_VALUE
元素,则返回Integer.MAX_VALUE
。
所以它可能包含更多元素。