list嵌套map利用stream降部分数据转成map
时间: 2023-07-25 20:41:09 浏览: 89
可以使用Java 8的Stream API来对list嵌套map进行操作。假设我们有一个list,其中每个元素都是一个map,我们想要将其中的部分数据转成一个新的map,可以按照以下步骤进行操作:
1. 首先使用stream()方法将list转成一个流。
2. 使用flatMap()方法将每个map对象转成一个新的流。
3. 使用filter()方法过滤出需要的数据。
4. 使用collect()方法将过滤后的数据收集到一个新的map中。
下面是一个示例代码:
```
List<Map<String, Object>> list = new ArrayList<>();
// 假设list已经被填充了数据
Map<String, Object> result = list.stream()
.flatMap(map -> map.entrySet().stream())
.filter(entry -> entry.getKey().equals("key1") || entry.getKey().equals("key2"))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
// 将key为"key1"和"key2"的数据转成一个新的map
```
在上面的代码中,我们使用flatMap()方法将每个map对象转成一个新的流,然后使用filter()方法过滤出需要的数据,最后使用collect()方法将过滤后的数据收集到一个新的map中。需要注意的是,这里的filter()方法是针对map对象中的每个entry进行的,因此我们需要使用entry.getKey()方法来获取entry的key,entry.getValue()方法来获取entry的value。
阅读全文