美文网首页
java.util.ConcurrentModification

java.util.ConcurrentModification

作者: LX_代码制造坊 | 来源:发表于2020-03-07 10:07 被阅读0次

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();
            }
        }

相关文章

网友评论

      本文标题:java.util.ConcurrentModification

      本文链接:https://www.haomeiwen.com/subject/ahfqdhtx.html