java map 合并
时间: 2023-11-17 18:55:22 浏览: 225
要合并两个Java Map,可以使用putAll()方法。putAll()方法将另一个Map中的所有键值对添加到当前Map中。以下是示例代码:
```java
Map<String, Integer> map1 = new HashMap<>();
map1.put("A", 1);
map1.put("B", 2);
Map<String, Integer> map2 = new HashMap<>();
map2.put("C", 3);
map2.put("D", 4);
map1.putAll(map2);
System.out.println(map1);
```
输出结果为:{A=1, B=2, C=3, D=4}
相关问题
java map合并_java-合并多级HashMap的最快方法
合并多级 HashMap 的最快方法是使用 Java 8 中的 `Map.merge()` 方法。这个方法可以将两个 Map 合并成一个 Map,同时处理键的冲突问题。
下面是一个示例代码:
```java
Map<String, Map<String, Integer>> map1 = new HashMap<>();
map1.put("key1", new HashMap<>());
map1.get("key1").put("innerKey1", 1);
map1.get("key1").put("innerKey2", 2);
Map<String, Map<String, Integer>> map2 = new HashMap<>();
map2.put("key1", new HashMap<>());
map2.get("key1").put("innerKey2", 3);
map2.get("key1").put("innerKey3", 4);
map2.forEach((key, value) -> map1.merge(key, value, (v1, v2) -> {
v1.putAll(v2);
return v1;
}));
System.out.println(map1);
```
运行结果为:
```
{key1={innerKey1=1, innerKey2=3, innerKey3=4}}
```
在这个示例中,我们首先创建了两个多级 HashMap,然后使用 `Map.merge()` 方法将第二个 Map 合并到第一个 Map 中。使用 Lambda 表达式处理键的冲突,将重复的键合并到一起。最后输出合并后的 Map。
需要注意的是,`Map.merge()` 方法只能处理两个 Map 的合并,如果要合并多个 Map,可以使用循环遍历的方式来实现。
java 两个map合并
可以使用Java 8中的Stream API来将两个Map合并。以下是示例代码:
```java
Map<String, Integer> map1 = new HashMap<>();
map1.put("a", 1);
map1.put("b", 2);
Map<String, Integer> map2 = new HashMap<>();
map2.put("c", 3);
map2.put("d", 4);
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=2, c=3, d=4}
```
在上面的示例中,我们使用`Stream.concat()`方法将两个Map的entrySet流合并,然后使用`Collectors.toMap()`方法将结果收集到一个新的Map中。在收集器中,我们使用entry的key作为新Map的key,value作为新Map的value,并使用`Integer::sum`函数来解决key重复时如何合并value的问题。
阅读全文