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

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

然而,你不能这样做

arr.add(5, 10);

因为它会导致出界异常。

如果不能访问所分配的空间,那么设置初始大小有什么用呢?

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


当前回答

如果你想在数组列表中添加10个元素,你可以这样做:

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

如果你已经声明了一个数组大小变量你应该使用变量size而不是数字10

其他回答

我猜你问题的确切答案是:

在数组列表上设置初始大小可以减少内部内存重新分配的次数。 该列表由一个数组支持。如果你指定初始容量为0,在第一次插入一个元素时,内部数组就必须重新调整大小。 如果您大概知道列表将容纳多少元素,那么设置初始容量将减少在使用列表时发生的内存重新分配的次数。

尽管你的数组列表的容量是10,但实际的数组中没有元素。add方法用于将元素插入到实际列表中。因为它没有元素,所以不能在索引5中插入一个元素。

这可能会帮助到一些人

ArrayList<Integer> integerArrayList = new ArrayList<>(Arrays.asList(new Integer[10]));

如果你想要一个预定义大小的列表,你也可以使用:

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

如果你想使用集合。填充(列表,obj);为了用重复的对象填充列表,您可以使用

ArrayList<Integer> arr=new ArrayList<Integer>(Collections.nCopies(10, 0));

这一行将10乘以0复制到数组列表中