java中如何将map<1,map<"sd",123>>和map<1,map<"zd",234>>合并为一个map?
时间: 2024-01-01 21:03:20 浏览: 53
Java中可以使用循环遍历和putAll方法将两个map合并为一个map,具体步骤如下:
1. 定义一个新的map来存放合并后的结果,比如说叫做mergedMap。
2. 使用putAll方法将第一个map中的所有键值对添加到mergedMap中。
3. 使用putAll方法将第二个map中的所有键值对添加到mergedMap中。
以下是代码示例:
```java
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
Map<Integer, Map<String, Integer>> map1 = new HashMap<>();
map1.put(1, new HashMap<>());
map1.get(1).put("sd", 123);
Map<Integer, Map<String, Integer>> map2 = new HashMap<>();
map2.put(1, new HashMap<>());
map2.get(1).put("zd", 234);
Map<Integer, Map<String, Integer>> mergedMap = new HashMap<>();
// 将第一个map中的所有键值对添加到mergedMap中
mergedMap.putAll(map1);
// 将第二个map中的所有键值对添加到mergedMap中
for (Map.Entry<Integer, Map<String, Integer>> entry : map2.entrySet()) {
int key = entry.getKey();
Map<String, Integer> value = entry.getValue();
if (mergedMap.containsKey(key)) {
mergedMap.get(key).putAll(value);
} else {
mergedMap.put(key, value);
}
}
// 打印合并后的map
for (Map.Entry<Integer, Map<String, Integer>> entry : mergedMap.entrySet()) {
System.out.print(entry.getKey() + ": ");
Map<String, Integer> value = entry.getValue();
for (Map.Entry<String, Integer> innerEntry : value.entrySet()) {
System.out.print("{" + innerEntry.getKey() + ", " + innerEntry.getValue() + "} ");
}
System.out.println();
}
}
}
```
输出结果为:
```
1: {sd, 123} {zd, 234}
```
阅读全文