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();
            }
        }
上一篇下一篇

猜你喜欢

热点阅读