美文网首页
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