两个map的key相同,value合并
时间: 2023-09-03 16:08:44 浏览: 747
js合并两个数组生成合并后的key:value数组
可以使用Java 8中的Stream API和Collectors类来实现两个map的key相同,value合并。以下是示例代码:
```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}
```
这段代码将map1和map2的entry合并为一个Stream,然后使用Collectors.toMap()方法将其收集为一个新的Map。在toMap()方法中,第一个参数指定了新Map的key,第二个参数指定了新Map的value,第三个参数定义了当key相同时如何处理value,这里使用了Integer::sum,表示将两个value相加。
阅读全文