如果你有一个Map<String, A> B,以及一个List<String> C,用stream流从B中移除那些键(key)不在C中存在的元素,
时间: 2024-12-08 17:21:19 浏览: 11
Java中 List《map》把里面map中某个key相同记录的其他key 的 value 合并
你可以使用Java 8的Stream API来实现这个操作。首先,你需要将`List<String>`转换为Set,因为Set的成员不会包含重复的元素,这方便进行交集操作。然后,你可以创建一个新的Stream并过滤掉不在C的Set中的键。这里是一个示例代码:
```java
Map<String, A> mapB = ...; // your map B
List<String> listC = ...; // your list C
Set<String> setC = new HashSet<>(listC); // 将列表转换为集合
Map<String, A> result = mapB.entrySet().stream()
.filter(entry -> setC.contains(entry.getKey())) // 过滤掉不存在于C中的键
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); // 保留满足条件的映射
// 现在result只包含了mapB中键存在于listC中的元素
```
阅读全文