我想使用一个ArrayList(或其他一些集合),就像我将如何使用标准数组一样.
具体来说,我希望它以一个初始大小(比如SIZE)开始,并且能够明确地设置元素,
例如
array[4] = "stuff";
可以写
array.set(4, "stuff");
但是,以下代码抛出IndexOutOfBoundsException:
ArrayList<Object> array = new ArrayList<Object>(SIZE);
array.set(4, "stuff"); //wah wahhh
我知道有几种方法可以做到这一点,但我想知道是否有人喜欢,或者可能是更好的收藏品.目前,我正在使用如下代码:
ArrayList<Object> array = new ArrayList<Object>(SIZE);
for(int i = 0; i < SIZE; i++) {
   array.add(null);
}
array.set(4, "stuff"); //hooray...
我问的唯一原因是因为我在循环中这样做可能会运行很多次(数万次).鉴于ArrayList调整大小行为是"未指定的",我宁愿不浪费任何时间调整自身,或者在数组中备用它的额外未使用的点上的内存.这可能是一个没有实际意义的问题,因为我将完全通过调用array.set()来填充数组(几乎总是数组中的每个单元格),并且永远不会超过容量?
我宁愿只使用普通数组,但我的规格要求我使用Collection.
初始容量意味着阵列有多大.这并不意味着那里有元素.所以尺寸!=容量.
实际上,您可以使用数组,然后使用它Arrays.asList(array)来获取集合.
| 归档时间: | 
 | 
| 查看次数: | 1174 次 | 
| 最近记录: |