java用最少的代码将两个map中相同的key的值合并在一起成一个新的map
时间: 2023-11-27 19:49:59 浏览: 115
Java中 List《map》把里面map中某个key相同记录的其他key 的 value 合并
可以使用Java 8的Stream API来实现:
```java
Map<String, Integer> map1 = new HashMap<>();
map1.put("a", 1);
map1.put("b", 2);
map1.put("c", 3);
Map<String, Integer> map2 = new HashMap<>();
map2.put("b", 4);
map2.put("c", 5);
map2.put("d", 6);
Map<String, Integer> result = Stream.concat(map1.entrySet().stream(), map2.entrySet().stream())
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, Integer::sum));
System.out.println(result);
```
输出:
```
{a=1, b=6, c=8, d=6}
```
这里使用了`Stream.concat`方法将两个Map的Entry集合合并成一个流,然后使用`Collectors.toMap`方法将流中的Entry转换为新的Map,其中第二个参数是一个合并函数,用来处理相同的Key的值的合并。在这个例子中,我使用了Java 8的方法引用语法来传递`Integer.sum`方法作为合并函数。
阅读全文