最大。 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

所以它可能包含更多元素。