What is the maximum length of List in java? I mean that how many maximum elements can store in list?
Integer.MAX_VALUE
或者是低的堆将是极限
It's very likely that you will run out of heap space well before you get anywhere close to Integer.MAX_VALUE
number of elements, but let's see what would happen if we had infinite memory and tried to add more than Integer.MAX_VALUE
elements to a List
:
1) ArrayList:
An ArrayList will try to increase its capacity:
int newCapacity = (oldCapacity * 3)/2 + 1;
This calculation will overflow and newCapacity
will actually be less than Integer.MAX_VALUE
. The ArrayList
will then try to copy the elements in the original array to a smaller array and will hence lose elements.
2) LinkedList:
A LinkedList
works a bit better once you cross the Integer.MAX_VALUE
limit. It will continue to hold elements, however the size
attribute will suffer from integer overflow and will affect other operations that make use of it.
This depends on the specific list implementation. Most people think it's Integer.MAX_VALUE
but it isn't limited to that. In fact the documentation of the size()
method merely states :
If this list contains more than
Integer.MAX_VALUE
elements, returnsInteger.MAX_VALUE
.
So it might as well contain more elements.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.