【发布时间】:2016-05-30 20:02:09
【问题描述】:
ConcurrentHashMap 是线程安全的,所以我们可以在迭代时更新 map 的值。但以下程序的输出与我预期的不一样。
Map concurrentHashMap = new ConcurrentHashMap<();
concurrentHashMap.put("0", "b");
Iterator iterator = concurrentHashMap.entrySet().iterator();
concurrentHashMap.put("8", "k");
concurrentHashMap.put("2", "c");
concurrentHashMap.put("3", "d");
concurrentHashMap.put("1", "e");
while(iterator.hasNext())
{
System.out.println(""+iterator.next());
}
以上代码的输出是
0=b
8=k
3=d
2=c
预期输出
1=e
0=b
8=k
3=d
2=c
【问题讨论】:
-
没有人可以帮助我吗?
标签: java iterator concurrenthashmap