在Java开发过程中,集合部分报错经常会引起困惑。今天我们来分享一个常见的ArrayList索引访问越界报错,了解其根本原因及解决方案。
错误提示如下:
Index 1 out of bounds for length 0
意思是试图访问数组或List中的索引1,但该数组或List的长度为0。
这通常会出现在以下场景:
举个栗子:
List<String> list = new ArrayList<>();
for(int i = 0; i < 10; i++) {
list.add(i + "");
}
第一轮添加时,list长度为0,但索引默认为1,就会出现索引超出范围的问题。
原因很简单,ArrayList在添加第一个元素前,它的underlying数组长度为0。
解决方案主要有以下几种:
List<String> list = new ArrayList<>(10);
if(list.size() > i){
list.add(i+"");
}
总之,在集合操作中一定要注意集合长度的动态变化,以免索引访问越界问题发生。如有疑问也可以与大家分享讨论。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。