由于Java 8
Map包含
merge需要
- 键,
- 新价值,
- 和函数, 如果该值已经包含我们的密钥 ,它将用来决定要在地图中放置什么值(将基于新旧值进行决策)。
因此,您可以简单地使用:
map2.forEach((k, v) -> map1.merge(k, v, Integer::sum));
现在,您
map1将包含的所有值,
map2并且如果键相同,则将旧值添加到新值中,并将结果存储在map中。
演示:
Map<String, Integer> m1 = new HashMap<>();m1.put("a", 1);m1.put("b", 2);Map<String, Integer> m2 = new HashMap<>();m2.put("a", 3);m2.put("c", 10);System.out.println(m1);System.out.println(m2);//iterate over second map and merge its elements into map 1 using //same key and sum of valuesm2.forEach((k, v) -> m1.merge(k, v, Integer::sum));System.out.println("===========");System.out.println(m1);
输出:
{a=1, b=2}{a=3, c=10}==========={a=4, b=2, c=10}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)