我有一个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)
我猜我的问题:
为什么第一段代码不起作用?
如何使第一段代码工作?