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