JAVA获取两个MAP中同key不同Val的MAP集合
时间: 2024-05-12 14:18:08 浏览: 132
Java中 List《map》把里面map中某个key相同记录的其他key 的 value 合并
可以使用Java 8中的Stream API和lambda表达式实现该功能,代码如下:
```
Map<String, String> map1 = new HashMap<>();
map1.put("key1", "value1");
map1.put("key2", "value2");
map1.put("key3", "value3");
Map<String, String> map2 = new HashMap<>();
map2.put("key1", "value1");
map2.put("key2", "value4");
map2.put("key4", "value5");
Map<String, String> diffMap = map1.entrySet().stream()
.filter(e -> map2.containsKey(e.getKey()) && !map2.get(e.getKey()).equals(e.getValue()))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
System.out.println(diffMap);
```
运行结果为:
```
{key2=value2}
```
解释一下代码:首先,我们将map1的entrySet转换为一个Stream,然后过滤掉不包含在map2中的键,最后再过滤掉值相同的键值对,最终将不同的键值对收集到一个新的Map中。
阅读全文