把List<Map<String,String>>通过Stream流取出几个字段的Key和value并组成新的List<Map<String,String>>
时间: 2024-03-12 07:42:19 浏览: 95
可以使用Java 8的Stream流来实现将List<Map<String, String>>中的字段提取出来并组成新的List<Map<String, String>>。具体步骤如下:
1. 首先,使用Stream的flatMap方法将List<Map<String, String>>中的每个Map转换为Stream。
2. 然后,使用Stream的map方法将每个Map中的Key和Value提取出来,并使用Collectors.toMap方法将它们组成新的Map。
3. 最后,使用Collectors.toList方法将所有的Map收集到一个List中。
下面是示例代码:
```java
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Map<String, String>> originalList = List.of(
Map.of("key1", "value1", "key2", "value2"),
Map.of("key3", "value3", "key4", "value4")
);
List<Map<String, String>> newList = originalList.stream()
.flatMap(map -> map.entrySet().stream())
.collect(Collectors.toMap(
Map.Entry::getKey,
Map.Entry::getValue,
(v1, v2) -> v1,
LinkedHashMap::new
))
.entrySet().stream()
.collect(Collectors.toList());
System.out.println(newList);
}
}
```
这段代码会将原始的List<Map<String, String>>中的所有Key和Value提取出来,并组成一个新的List<Map<String, String>>。注意,这里使用了LinkedHashMap来保持原始顺序。
阅读全文