相关疑难解决方法(0)

Java:在for-each循环中删除List中的记录时出现异常

我有一个List,我想循环遍历该List并在某些条件下删除一些记录库.这就是我的工作

public void foo(List<Bar> recordList){
     for(Bar bar : recordList){
         if(bar.someCondition()){
              recordList.remove(bar);
         }
     }
}
Run Code Online (Sandbox Code Playgroud)

此代码生成异常.如果我使用Iterator,那么它工作正常

public void foo(List<Bar> recordList){
     Iterator<Bar> iter = recordList.iterator();
     while(iter.hasNext()){
         Bar bar = iter.next();
         if(bar.someCondition()){
              iter.remove();
         }
     }
}
Run Code Online (Sandbox Code Playgroud)

我猜我的问题:

  1. 为什么第一段代码不起作用?

  2. 如何使第一段代码工作?

java list arraylist

3
推荐指数
2
解决办法
1067
查看次数

标签 统计

arraylist ×1

java ×1

list ×1