首页 >Java >java教程 >为什么在指定初始大小时无法访问 ArrayList 中分配的空间?

为什么在指定初始大小时无法访问 ArrayList 中分配的空间?

DDD
DDD原创
2024-11-03 15:25:30860浏览

Why can't I access allocated spaces in an ArrayList when specifying an initial size?

了解 ArrayList 容量与大小

问:如果指定了初始大小,为什么最初无法访问为 ArrayList 分配的空间?

答:这种混淆是由于误解了 ArrayList 的大小和容量之间的区别。

ArrayList 的大小表示它包含的元素数量,而容量表示最大元素数量在需要分配更多内存之前它可以容纳的元素数量。设置初始容量可以通过为一定数量的元素预先分配空间来优化性能,但它不会自动用那么多元素填充列表。

例如,当您创建具有初始容量的 ArrayList 时为 10 时,列表最初为空,尝试在索引 10 处添加元素将导致越界异常。

要向 ArrayList 添加元素,需要使用 add 方法,指定应插入元素的索引。如果你想用 10 个元素填充列表,你可以使用循环:

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

通过使用这种技术,你可以添加 10 个元素,然后在索引 0 到 9 处操作它们,而不会出现边界问题。

以上是为什么在指定初始大小时无法访问 ArrayList 中分配的空间?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn