List 最多可以容纳多少数据?

最多可以在 Java.util.List 中添加多少数据?

数组列表有默认大小吗?

151625 次浏览

只要你的可用内存允许,除了堆没有大小限制。

它取决于实现,但是限制不是由 List接口定义的。

然而,接口定义了返回 intsize()方法。

返回此列表中的元素数。如果此列表包含多于 Integer.MAX_VALUE的元素,则返回 Integer.MAX_VALUE

因此,没有限制,但是在到达 Integer.MAX_VALUE之后,列表的行为会改变 有一点

ArrayList(带有标记)由一个数组支持,并且仅限于数组的大小-即 Integer.MAX_VALUE

java.util.List是一个接口。一个列表可以容纳多少数据取决于您选择使用的 List 的具体实现。

一般来说,List 实现可以包含任意数量的项(如果使用索引 List,它可能仅限于 Integer.MAX_VALUELong.MAX_VALUE)。只要内存不用完,List 就不会变成“已满”或者其他什么。

最多可以在 Java.util.List 中添加多少数据?

这与 可以存储在 HashMap 中的键(对象)数量的理论限制?非常相似

java.util.List的文档没有明确地记录元素最大数量的任何限制。然而,List.toArray的文档指出..。

按照正确的顺序(从第一个元素到最后一个元素)返回一个包含该列表中元素的 所有的数组; 将难以忠实地实现某些方法,例如

... 所以严格地说,如果列表中有超过231-1 = 2147483647个元素,就不可能忠实地实现这个方法,因为这是可能的最大数组。

有人会说 size()的文件..。

返回此列表中的元素数。如果此列表包含多于 Integer.MAX_VALUE的元素,则返回 Integer.MAX_VALUE

... 表明没有上限,但这种观点导致许多不一致之处。参见 这个漏洞报告

数组列表有默认大小吗?

如果你指的是 ArrayList,那么我会说默认的大小是0。但是,默认的 容量(可以插入的元素数量,而不必强制列表重新分配内存)是10。请参阅 缺省构造函数的文档。

ArrayList的大小限制是 Integer.MAX_VALUE,因为它是由普通数组支持的。

这取决于 List的实现。由于使用 int对数组进行索引,因此 ArrayList不能保存超过 Integer.MAX_VALUE的元素。但是,LinkedList不受相同方式的限制,它可以包含任意数量的元素。

参见数组列表默认的代码下面是10当你创建 List l = new ArrayList () ;

   public class ArrayList<E> extends AbstractList<E> implements List<E>,
Cloneable, Serializable, RandomAccess {


private static final long serialVersionUID = 8683452581122892189L;


private transient int firstIndex;


private transient int lastIndex;


private transient E[] array;


/**
* Constructs a new instance of {@code ArrayList} with ten capacity.
*/
public ArrayList() {
this(10);
}

然而,接口定义 size ()方法,该方法返回一个 int。

Returns the number of elements in this list. If this list contains more than Integer.MAX_VALUE elements, returns Integer.MAX_VALUE.

因此,没有限制,但是在到达 Integer.MAX _ VALUE 之后,列表的行为会发生一些变化

ArrayList (带有标记)由数组支持,并且仅限于数组的大小-即 Integer.MAX _ VALUE

对 java 数组中的项进行编号应该从零开始。这是我认为我们可以访问 Integer.MAX _ VALUE + 1一个项目。