map怎么通过多个key形成的list集合获取新的map集合
时间: 2024-06-10 17:07:22 浏览: 159
Java lambda list转换map时,把多个参数拼接作为key操作
5星 · 资源好评率100%
你可以使用Java 8中的Stream API来实现。具体来说,可以使用Stream的flatMap()方法将多个Map对象的key集合合并成一个Stream,然后使用filter()方法过滤出包含指定key的Map对象,最后使用toMap()方法将符合条件的key-value对转换成一个新的Map对象。以下是示例代码:
```
List<Map<String, Object>> maps = new ArrayList<>();
// 添加多个Map对象到List中
String[] keys = {"key1", "key2"};
Map<String, Object> result = maps.stream()
.flatMap(map -> map.keySet().stream())
.distinct()
.filter(key -> Arrays.asList(keys).contains(key))
.collect(Collectors.toMap(
key -> key,
key -> maps.stream()
.filter(map -> map.containsKey(key))
.findFirst()
.orElse(Collections.emptyMap())
.get(key)
));
```
注意,这里的keys变量是一个包含要筛选的key的数组,你可以按照自己的需求进行修改。
阅读全文