stream流 如何用一个list<map>集合中 的某个属性生成一个新的集合
时间: 2024-10-18 21:17:00 浏览: 41
List<Bean>转换为List<Map>
Stream API 是Java 8引入的一个强大的工具,用于处理集合数据。如果你想从`List<Map<String, Object>>`这样的列表中基于某个属性生成一个新的集合,可以按照以下步骤操作:
```java
import java.util.*;
import java.util.stream.Collectors;
// 假设你有一个List<Map<String, Object>>,其中每个Map都有一个名为"keyToFilter"的属性
List<Map<String, Object>> list = ...;
String keyToFilter = "keyName"; // 你想过滤的属性名
// 使用stream()方法创建流,然后利用filter(), map()和collect()方法
List<String> filteredList = list.stream()
.filter(map -> map.containsKey(keyToFilter)) // 筛选出包含指定键的map
.map(map -> (String) map.get(keyToFilter)) // 获取该键对应的值,假设它是字符串类型
.collect(Collectors.toList()); // 将结果收集到新的列表中
flippedList.forEach(System.out::println); // 打印新生成的集合
```
这里假设获取的值是一个字符串,如果不是,你需要相应地转换类型。如果不确定值的类型,可以使用`Object`并添加适当的类型检查或转换。
阅读全文