数组列表的初始大小

您可以通过以下操作设置数组列表的初始大小

ArrayList<Integer> arr=new ArrayList<Integer>(10);

但是,您不能这样做

arr.add(5, 10);

因为它会导致越界异常。

如果无法访问分配的空间,设置初始大小有什么用?

add函数被定义为这样,所以我没有添加到索引10。add(int index, Object element)


答案 1

您将数组列表的大小与其容量混淆了:

  • 大小是列表中元素的数量;
  • 容量是列表在不重新分配其内部结构的情况下可以容纳多少元素。

调用 时,您设置的是列表的初始容量,而不是其大小。换句话说,以这种方式构造时,数组列表的生命周期为空。new ArrayList<Integer>(10)

向数组列表添加十个元素的一种方法是使用循环:

for (int i = 0; i < 10; i++) {
  arr.add(0);
}

完成此操作后,您现在可以修改索引 0..9 处的元素。


答案 2

如果需要具有预定义大小的列表,还可以使用:

List<Integer> arr = Arrays.asList(new Integer[10]);

推荐