我正在构建一个聊天应用程序。目前我在ArrayList
中有所有消息,让我思考 - ArrayList
设计要保留多少元素? 100? 1.000? 10.000?
答案 0 :(得分:11)
ArrayList
不能超过Integer.MAX_VALUE
元素。
所以2147483647是最大值
答案 1 :(得分:10)
ArrayList
的尺寸为Integer.MAX_VALUE
。不是因为,List
的{{3}}方法之前的评论如下(见下文)。
/**
* Returns the number of elements in this list. If this list contains
* more than <tt>Integer.MAX_VALUE</tt> elements, returns
* <tt>Integer.MAX_VALUE</tt>.
*
* @return the number of elements in this list
*/
int size();
这是因为ArrayList
在内部使用数组而 理论上 ,数组最大可以是Integer.MAX_VALUE
。有关详细信息,请参阅List#size()。
答案 2 :(得分:6)
由数组支持的ArrayList,并且限制为数组的大小 - 即Integer.MAX_VALUE。
但是,LinkedList不以相同的方式限制,并且可以包含任意数量的元素。
查看类似问题max. length of List in Java
How many data a list can hold at the maximum 在列表的最大大小上有其他方面
答案 3 :(得分:3)
ArrayList可以容纳任意数量的元素,直到Integer.MAX_VALUE
- 这是由于设计决定对索引使用int
数据类型。然而,重要的是你如何为它分配内存 - 内存分配很慢 - 以及你如何处理/访问元素。但是,仅从存储方面来看,您受到MAX_VALUE
的限制。在Java中,这是2 ^ 31-1 = 2,147,483,647。
对于任何正常的应用,这应该足够了。然而,如果您需要更多,您可以轻松获取它的源代码并修改它以使用long
作为索引数据类型 - 然后受Long.MAX_VALUE
限制。