6

我正在构建一个聊天应用程序。当前我在一个 中包含所有消息,这让我思考 -设计要容纳ArrayList多少元素?ArrayList100?1.000?10.000?

4

4 回答 4

11

ArrayList不能容纳超过Integer.MAX_VALUE元素。

所以 2147483647 是最大值。

于 2013-07-03T14:18:32.370 回答
10

的大小ArrayListInteger.MAX_VALUE

/**
  * 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大小可以最大。如需更多信息,您可以查看内容。

于 2013-07-03T14:22:24.727 回答
6

ArrayList 由数组支持,并且限制为数组的大小 - 即 Integer.MAX_VALUE。

但是,LinkedList 并没有以同样的方式受到限制,并且可以包含任意数量的元素。

最多见类似问题。Java中List的长度

一个列表最多可以容纳多少数据才能在列表的 最大大小上有其他方面

于 2013-07-03T14:20:12.490 回答
3

ArrayList 最多可以容纳任意数量的元素Integer.MAX_VALUE- 这是由于设计决定使用int数据类型作为索引。然而重要的是你如何为它分配内存——内存分配很慢——以及你如何处理/访问元素。但是,仅从存储方面来看,您会受到MAX_VALUE. 在 Java 中,这是 2^31-1 = 2,147,483,647。

对于任何正常的应用程序,这应该足够了。然而,如果您需要更多,您可以轻松获取它的源代码并将其修改为long用作索引数据类型 - 然后受限于Long.MAX_VALUE.

于 2013-07-03T14:19:44.207 回答