ArrayList中的元素数量

时间:2013-07-03 14:17:31

标签: java arraylist

我正在构建一个聊天应用程序。目前我在ArrayList中有所有消息,让我思考 - ArrayList设计要保留多少元素? 100? 1.000? 10.000?

4 个答案:

答案 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限制。