【发布时间】:2017-05-17 23:44:35
【问题描述】:
我有一个使用ConcurrentHashMap 的故障安全迭代器示例(参见下面的代码),其中两个条目在迭代时添加到映射中。
当其中一个值出现在输出中时,另一个值不会出现在输出中。
由于故障安全适用于地图副本而不是原始地图,因此迭代器是否应该在迭代时打印添加到地图的值?
public static void main(String[] args) {
ConcurrentHashMap<String, Integer> mp = new ConcurrentHashMap<String, Integer>();
mp.put("one",1);
mp.put("two",2);
Iterator<String> itr=mp.keySet().iterator();
while (itr.hasNext()) {
String key=(String)itr.next();
System.out.println(mp.get(key));
mp.put("three",3);
mp.put("FIVE",5);
System.out.println(mp);
}
}
【问题讨论】:
标签: iterator concurrenthashmap