开发者

max. length of List in Java

What is the maximum length of List in java? I mean that how many maximum elements开发者_如何学运维 can store in list?


Integer.MAX_VALUE   

or heap which ever is low will be the limit


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, returns Integer.MAX_VALUE.

So it might as well contain more elements.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜