列表最多可以容纳多less数据?

Java中的java.util.List中最多可以添加多less数据?

有一个ArrayList的默认大小?

这取决于List实现。 既然你用int索引数组, ArrayList不能容纳多于Integer.MAX_VALUE元素。 但是, LinkedList方式不受限制,可以包含任意数量的元素。

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

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

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

所以,没有限制,但达到Integer.MAX_VALUE ,列表的行为会发生一些变化

ArrayList (被标记)由一个数组支持,并且被限制在数组的大小 – 即Integer.MAX_VALUE

Java中的java.util.List中最多可以添加多less数据?

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

java.util.List的文档没有明确logging元素的最大数目的限制。 List.toArray的文档,但是,指出…

以正确的顺序(从第一个元素到最后一个元素)返回一个包含此列表中所有元素的数组; 在实施某些方法时会遇到麻烦,比如

…严格来说,如果列表中的元素多于2 31 -1 = 2147483647,那么将无法忠实地实现此方法,因为这是最大的可能数组。

有些人会争辩说,文件的size()

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

…表示没有上限,但是这种观点导致许多不一致。 看到这个错误报告 。

有没有数组列表的默认大小?

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

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

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

通常,List实现可以包含任意数量的项目(如果使用索引列表,则可能会限制为Integer.MAX_VALUELong.MAX_VALUE )。 只要你没有用完内存,列表就不会变成“完整”或任何东西。

尽可能多的可用内存将允许。 没有大小限制,除了堆。

然而,接口定义了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

看到下面的代码arraylist默认是10当你创build列表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); } 

编号在java数组中的项应该从零开始。 这是我认为我们可以访问Integer.MAX_VALUE + 1个项目。