【发布时间】:2015-06-18 18:40:43
【问题描述】:
有谁知道是否有地图结构或库可以轻松支持在组合两个地图时将地图的值相加。
HashMap<String, Integer> score1 = new HashMap<>();
HashMap<String, Integer> addition = new HashMap<>();
score1.put("Chicaco", 2);
score1.put("New york", 1);
addition.put("New york", 1);
addition.put("Los Angeles", 1);
有没有办法将 score1 与加法结合起来,以便结果是一个带有
的地图
“芝加哥”-> 2,
“纽约”-> 2,
“洛杉矶” -> 1?
我知道我可以在 Map 上使用流和新的 (Java 8) compute() 进行迭代,但是还有其他不需要手动迭代的方法吗?
我认为必须有一些比自己处理迭代更好的方法,例如:
addition.forEach((k1, v1) -> score1.compute(k1, (k2, v2) -> v2==null?v1:v1+v2));
score1.forEach((k,v)-> System.out.println(k+":"+v));
【问题讨论】:
-
Sashi 是最接近的,但几乎每个人都没有看到纽约必须更新为每张地图中纽约的值总和。那就是 -> 2
标签: java dictionary