你可以通过执行以下操作来设置ArrayList的初始大小:
ArrayList<Integer> arr=new ArrayList<Integer>(10);
但是,你做不到
arr.add(5, 10);
因为它会导致超出范围的异常。
如果无法访问分配的空间,设置初始大小有什么用?
add函数的定义是,add(int index, Object element)所以我不添加索引10。
add(int index, Object element)
你将数组列表的大小与其容量混淆了:
的大小是在列表中的元素的数目; 的容量是多少元素列表可以潜在地容纳而不重新分配其内部结构。 呼叫时new ArrayList<Integer>(10),你是在设置列表的初始容量,而不是列表的大小。换句话说,以这种方式构造时,数组列表的生命开始为空。
new ArrayList<Integer>(10)
将十个元素添加到数组列表的一种方法是使用循环:
for (int i = 0; i < 10; i++) { arr.add(0); }
完成此操作后,你现在可以修改索引为0..9的元素。