Dan*_*don 12 java collections hashmap concurrenthashmap
我试图简单地在ConcurrentHashMap中打印所有键/值对.
我在网上找到了这个代码,我认为会这样做,但它似乎是获取有关桶/哈希码的信息.其实说实话输出很奇怪,可能我的程序不正确,但我首先要确保这部分是我想要使用的.
for (Entry<StringBuilder, Integer> entry : wordCountMap.entrySet()) {
String key = entry.getKey().toString();
Integer value = entry.getValue();
System.out.println("key, " + key + " value " + value);
}
Run Code Online (Sandbox Code Playgroud)
这为大约10个不同的键提供输出,其计数似乎是映射到插入的总插入数的总和.
Sli*_*imu 31
我测试了你的代码并正常工作.我添加了一个小型演示,用另一种方法打印地图中的所有数据:
ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<String, Integer>();
map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
for (String key : map.keySet()) {
System.out.println(key + " " + map.get(key));
}
for (Map.Entry<String, Integer> entry : map.entrySet()) {
String key = entry.getKey().toString();
Integer value = entry.getValue();
System.out.println("key, " + key + " value " + value);
}
Run Code Online (Sandbox Code Playgroud)
小智 19
HashMap forEach作为其结构的一部分.您可以将其与lambda表达式一起使用,以打印出一行内容,例如:
map.forEach((k,v)-> System.out.println(k+", "+v));
Run Code Online (Sandbox Code Playgroud)
你可以做点什么
Iterator iterator = map.keySet().iterator();
while (iterator.hasNext()) {
String key = iterator.next().toString();
Integer value = map.get(key);
System.out.println(key + " " + value);
}
Run Code Online (Sandbox Code Playgroud)
这里'map'是您的并发HashMap.