如何理解Map遍历过程中删除元素报ConcurrentModificationException异常?

来源:4-12 项目作业

执键写春秋

2021-05-18 16:08:32

 public void removeBymap(){

        HashMap<Integer, String> map = new HashMap<Integer, String>();

        map.put(1, "one");

        map.put(2, "two");

        map.put(3, "three");

        System.out.println(map);

        Set<Map.Entry<Integer, String>> entries = map.entrySet();

        for(Map.Entry<Integer, String> entry : entries){

            if(entry.getKey() == 2){

                map.remove(entry.getKey());

            }

        }

        System.out.println(map);

    }


写回答

1回答

好帮手慕小脸

2021-05-18

同学你好,

java.util.ConcurrentModificationException这个异常发生的原因主要是在遍历集合的过程中对集合元素进行了删除,并且进行完删除后还会继续遍历集合。Java中是不允许一边遍历一遍进行修改集合中的元素,会出现数据的不一致性的问题。这里应在删除数据后,使用break;语句跳出循环。 

http://img.mukewang.com/climg/60a37e5209eaafeb07520365.jpg

祝学习愉快~

0

0 学习 · 16556 问题

查看课程