List<Map<String, String>>抽取出某些需要的字段
时间: 2023-10-14 13:26:25 浏览: 55
可以使用Java 8的Stream API和Lambda表达式,将每个Map中的指定字段抽取出来并封装成一个新的Map对象,示例代码如下:
```java
List<Map<String, String>> dataList = new ArrayList<>();
// 构造数据列表
Map<String, String> data1 = new HashMap<>();
data1.put("id", "1");
data1.put("name", "Alice");
data1.put("age", "18");
data1.put("gender", "Female");
dataList.add(data1);
Map<String, String> data2 = new HashMap<>();
data2.put("id", "2");
data2.put("name", "Bob");
data2.put("age", "25");
data2.put("gender", "Male");
dataList.add(data2);
// 需要提取的字段列表
List<String> fieldList = Arrays.asList("id", "name");
// 使用Stream API和Lambda表达式提取指定字段
List<Map<String, String>> result = dataList.stream()
.map(data -> {
Map<String, String> resultMap = new HashMap<>();
fieldList.forEach(field -> {
if (data.containsKey(field)) {
resultMap.put(field, data.get(field));
}
});
return resultMap;
})
.collect(Collectors.toList());
System.out.println(result);
// 输出:[{id=1, name=Alice}, {id=2, name=Bob}]
```
希望能够帮到您!