【发布时间】:2018-12-19 01:07:36
【问题描述】:
为什么这段代码会导致索引越界错误?
ArrayList<Integer> list2 = new ArrayList<Integer>();
for (int i = 1; i <= 10; i++){
list2.add(i); //adding numbers to arraylist. Length is equal to 10
}
int size = list2.size(); //size now equals 10
for (int i = 0; i < size; i++)
if (list2.get(i) == 3 || list2.get(i) == 4)
list2.remove(i);
System.out.println(list2);
【问题讨论】:
-
您从数组列表中删除项目,但从不更新
size变量。所以在第一个remove之后,size就太大了。