迭代时从ArrayList中删除元素

时间:2019-02-14 19:48:07

标签: java arraylist

我读到我们不能在迭代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--;
       }
 }

谁能解释为什么?谢谢。

0 个答案:

没有答案