java.util.ConcurrentModification
2020-03-07 本文已影响0人
LX_代码制造坊
java.util.ConcurrentModificationException 异常出现在当
List<Map<String, Object>> list = new ArrayList<Map<String,Object>>();中,
有不符合当前list数组要求的Map需要移除list时。我们首先想到的方法可能是:
for(Map map1:list){
if (map1.get("key").equals("something")){
list.remove(map1);
}
}
但是当该方法执行时,会发现报出了异常。正确的移除方法是使用迭代器Iterator,使用迭代器的remove()方法。
正确方法如下:
Iterator iterator = list.iterator();
while (iterator.hasNext()){
Map map1 = new HashMap();
if (map1.get("key").equals("something")){
iterator.remove();
}
}