java flatMap()
时间: 2023-10-12 10:02:43 浏览: 58
`flatMap()` 是 Java 8 中 Stream API 提供的一个操作,它用于将一个流中的元素映射成另一个流,并将所有映射后的流合并成一个新的流。
`flatMap()` 方法可以用于处理嵌套的集合结构,将多个集合中的元素合并成一个流。它将每个元素映射成一个流,然后将这些流合并成一个新的流。
下面是 `flatMap()` 方法的语法:
```java
<R> Stream<R> flatMap(Function<? super T,? extends Stream<? extends R>> mapper)
```
其中,`mapper` 参数是一个函数,用于将每个元素映射成一个流。返回的是一个新的流,其中包含了所有映射后的元素。
下面是一个例子,展示如何使用 `flatMap()` 方法将嵌套的集合结构展平:
```java
List<List<Integer>> nestedList = Arrays.asList(
Arrays.asList(1, 2, 3),
Arrays.asList(4, 5, 6),
Arrays.asList(7, 8, 9)
);
List<Integer> flattenedList = nestedList.stream()
.flatMap(Collection::stream)
.collect(Collectors.toList());
System.out.println(flattenedList); // 输出 [1, 2, 3, 4, 5, 6, 7, 8, 9]
```
在这个例子中,我们有一个嵌套的集合 `nestedList`,其中包含了三个子列表。通过使用 `flatMap()` 方法,我们将每个子列表映射成一个流,然后将这些流合并成一个新的流。最后,我们通过 `collect()` 方法将新的流收集到一个列表中。
希望这可以帮助解决你的问题!如果还有其他疑问,请随时提问。
阅读全文