java8 两个map合并
时间: 2023-05-04 12:02:04 浏览: 506
在Java8中,可以使用Stream API的Map.merge()方法来实现两个Map的合并。
Map.merge()方法的语法如下:
V merge(K key, V value, BiFunction<? super V, ? super V, ? extends V> remappingFunction)
该方法将给定的键和值与Map中现有的条目合并。如果该键不存在,则直接将给定的键值对添加到Map中。如果该键已经存在,则使用给定的remappingFunction函数将原始值和给定值组合成新值。
示例如下:
Map<String, Integer> map1 = new HashMap<>();
map1.put("a", 1);
map1.put("b", 2);
Map<String, Integer> map2 = new HashMap<>();
map2.put("b", 3);
map2.put("c", 4);
map2.forEach((key, value) -> map1.merge(key, value, (v1, v2) -> v1 + v2));
System.out.println(map1);
输出结果为:
{a=1, b=5, c=4}
可以看到,两个Map中相同的键"b"被加起来合并到了一起,而新的键"c"被正常添加到了Map中。
需要注意的是,上述示例中,我们使用lambda表达式来定义了remappingFunction函数,该函数返回两个值相加的结果。这个函数需要根据具体的合并要求来定义,比如可以将两个值相乘,或者取其最大值等等。
阅读全文