你可以通过下面的操作来设置数组列表的初始大小
ArrayList<Integer> arr=new ArrayList<Integer>(10);
然而,你不能这样做
arr.add(5, 10);
因为它会导致出界异常。
如果不能访问所分配的空间,那么设置初始大小有什么用呢?
添加函数定义为add(int index, Object element),所以我没有添加到索引10。
你可以通过下面的操作来设置数组列表的初始大小
ArrayList<Integer> arr=new ArrayList<Integer>(10);
然而,你不能这样做
arr.add(5, 10);
因为它会导致出界异常。
如果不能访问所分配的空间,那么设置初始大小有什么用呢?
添加函数定义为add(int index, Object element),所以我没有添加到索引10。
当前回答
如果你想要一个预定义大小的列表,你也可以使用:
List<Integer> arr = Arrays.asList(new Integer[10]);
其他回答
现在你的列表中没有元素,所以当索引5不存在时,你不能添加到它。您混淆了列表的容量与其当前大小。
就叫:
arr.add(10)
将整数添加到数组列表中
我猜你问题的确切答案是:
在数组列表上设置初始大小可以减少内部内存重新分配的次数。 该列表由一个数组支持。如果你指定初始容量为0,在第一次插入一个元素时,内部数组就必须重新调整大小。 如果您大概知道列表将容纳多少元素,那么设置初始容量将减少在使用列表时发生的内存重新分配的次数。
尽管你的数组列表的容量是10,但实际的数组中没有元素。add方法用于将元素插入到实际列表中。因为它没有元素,所以不能在索引5中插入一个元素。
普通发布版. .
List <Destination\> destinations = Collections.nCopies(source.size(), Destination.class.newInstance());
虽然在这方面比较晚,但是在Java 8之后,我个人发现下面这种使用Stream API的方法更加简洁,并且可以作为公认答案的替代方案。
例如,
Arrays.stream(new int[size]).boxed().collect(Collectors.toList())
其中size是所需的List大小,并且没有这里提到的缺点,List中的所有元素都初始化为0。
(我做了一个快速搜索,没有看到任何答案张贴的流-请让我知道这个答案是否多余,我可以删除它)