如何理解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;语句跳出循环。
祝学习愉快~
相似问题