我读到我们不能在迭代ArrayList时修改它们。例如,下面的代码将引发ConcurrentModificationException:
for (int integer : nums) {
if (integer < 3) {
//not allowed
nums.remove(integer);
}
}
但是,如果我按以下方式更改上面的代码,则效果很好:
for (int i = 0; i < nums.size(); i++) {
Integer integer = nums.get(i);
if (integer < 3) {
nums.remove(integer);
i--;
}
}
谁能解释为什么?谢谢。