方法一:
Iterator<String> it = list.iterator();
while(it.hasNext()){
String x = it.next();
if(x.equals("del")){
it.remove();
}
}
这种方式可以正常的循环及删除。但要注意的是,使用iterator的remove方法,如果用list的remove方法同样会报上面提到的ConcurrentModificationException错误。
方法二 :
for (int i = 0; i < list.size(); i++) {
if(list.get(i).equals("del")) {
list.remove(i--);
}
}
for循环遍历List删除元素时,让索引同步调整--正确!
错误示例:
for(String x:list){
if(x.equals("del"))
list.remove(x);
}
for(int i=0;i<list.size();i++){
if(list.get(i)==3) {
list.remove(i);
}
}
详细见