list.stream().flatMap
时间: 2024-08-21 15:02:17 浏览: 49
`List.stream()` 是Java 8引入的流(Stream) API的一部分,它将列表转换为Stream。`flatMap` 方法则是流操作的一个方法,用于扁平化嵌套的流。具体来说,如果你有一个列表,其中的元素又是一个列表或其他可迭代的对象,你可以使用 `flatMap` 来合并这些嵌套的结构。
假设我们有一个列表,其中每个元素都是另一个列表:
```java
List<List<String>> nestedLists = Arrays.asList(
Arrays.asList("a", "b"),
Arrays.asList("c", "d", "e"),
Collections.singletonList("f")
);
```
我们可以使用 `flatMap` 来创建一个新的流,其元素是原始列表中所有子列表的元素连接起来:
```java
Stream<String> flattenedStream = nestedLists.stream()
.flatMap(List::stream); // 使用泛型方法 List::stream 替代了原本的 flatMap(Arrays.asList::stream)
flattenedStream.forEach(System.out::println); // 输出: a b c d e f
```
这里 `List::stream` 是一个方法引用,表示对列表应用 `stream` 方法。`flatMap` 会返回一个新流,该流的元素是由原始流中的每个元素调用给定方法产生的流的元素连接而成。
阅读全文