我有一张 map
Map<String, String> map = new HashMap<String, String>();
map.put("Pujan", "pujan");
map.put("Swati", "swati");
map.put("Manish", "manish");
map.put("Jayant", "jayant");
Iterator<Map.Entry<String, String>> itr = map.entrySet().iterator();
while(itr.hasNext()){
Entry<String,String> entry=(Entry<String, String>) itr.next();
map.put("Manish", "Updated");
}
我在这里没有遇到异常(我正在尝试修改现有的键值“Manish”)。但是,如果我尝试添加新键 map.put("Manish123", "Updated")
,我会得到 ConcurrentModificationException
。
最佳答案
因为您没有修改迭代器
,
put
将改变现有条目,因为 Map
中已经存在具有相同键的 Map.Entry
。
关于java - 为什么我同时在 HashMap 上迭代和修改时没有得到 "ConcurrentModificationException"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37166733/