ArrayList 的初始大小

新手上路,请多包涵

您可以通过以下方式设置 ArrayList 的初始大小

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

但是,你不能这样做

arr.add(5, 10);

因为它会导致越界异常。

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

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

原文由 Cemre Mengü 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

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

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

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

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

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

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

原文由 NPE 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

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

原文由 Gert Jan Schoneveld 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题