Integer.MAX_VALUE
Run Code Online (Sandbox Code Playgroud)
或者是低的堆将是极限
在你得到任何接近于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属性将受到整数溢出的影响,并将影响使用它的其他操作.
| 归档时间: |
|
| 查看次数: |
20106 次 |
| 最近记录: |