> 1. 使用Sream流实现 > 2. 使用正常的java代码实现 > > 注意:不允许使用我们没学过的工具类 **合并**map1和map2生成新的map3。同时要求**key相同时,保留map2的数据**,最后把合并后的map3打印出来
时间: 2024-01-17 12:42:32 浏览: 33
使用正常的Java代码实现可以这样:
```java
import java.util.HashMap;
import java.util.Map;
public class MapMergeExample {
public static void main(String[] args) {
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> map3 = new HashMap<>(map1);
map2.forEach((key, value) -> map3.merge(key, value, (v1, v2) -> v2));
System.out.println(map3);
}
}
```
这个程序的输出结果是 `{A=1, B=4, C=5, D=6}`。程序的核心逻辑是使用 `forEach` 遍历 `map2`,对于每个遍历到的键值对,使用 `merge` 方法把它合并到 `map3` 中。`merge` 方法的第三个参数是一个函数,用于处理当键值对的键在 `map3` 中已经存在时的冲突情况。这里用一个简单的 lambda 表达式把原来的值忽略掉,把新值作为合并结果。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)