【发布时间】:2013-08-29 06:33:30
【问题描述】:
我正在尝试将键值对添加到 Iterator 方法内的 hashmap 中。
但这并没有给我 ConcurrentModificationException 。为什么?
因为 Hashmap 是 failfast。
Map<String,String> m = new HashMap<>();
m.put("a", "a");
Iterator<String> i = m.keySet().iterator();
while(i.hasNext()){
System.out.println(i.next());
m.put("dsad", "asfsdf");
}
如果这是错误的,我如何产生 ConcurrentModificationException ? 谢谢。
更新:刚刚检查。
Map<String,String> m = new HashMap<>();
m.put("a", "a");
m.put("abc", "a");
Iterator<String> i = m.keySet().iterator();
while(i.hasNext()){
System.out.println(i.next());
m.put("dsad", "asfsdf");
}
这给了我一个例外。
【问题讨论】:
-
您的问题是在遍历地图时调用
m.put。i应该去dsad的关键,还是不去?
标签: java collections iterator hashmap