最大.Java中List的长度

kan*_*arp 10 java list

java中List的最大长度是多少?我的意思是列表中可以存储多少个最大元素?

Jig*_*shi 8

Integer.MAX_VALUE   
Run Code Online (Sandbox Code Playgroud)

或者是低的堆将是极限

  • (-1)直到海报解释他的答案和`List.size()`Javadoc之间的矛盾(http://download.oracle.com/javase/6/docs/api/java/util/List.html#size %28%29):"如果此列表包含多个Integer.MAX_VALUE元素,则返回Integer.MAX_VALUE." (2认同)

dog*_*ane 5

在你得到任何接近于Integer.MAX_VALUE元素数量的地方之前,你很可能会耗尽堆空间,但是让我们看看如果我们有无限的内存并且尝试向Integer.MAX_VALUE元素添加多个元素会发生什么List:

1)ArrayList:

ArrayList将尝试增加其容量:

int newCapacity = (oldCapacity * 3)/2 + 1;
Run Code Online (Sandbox Code Playgroud)

这个计算会溢出,newCapacity实际上会小于Integer.MAX_VALUE.然后,ArrayList将尝试将原始数组中的元素复制到较小的数组中,从而丢失元素.

2)LinkedList:

LinkedList一旦Integer.MAX_VALUE超过极限,A的效果会更好一些.它将继续保持元素,但该size属性将受到整数溢出的影响,并将影响使用它的其他操作.