stream flatMap
时间: 2025-01-07 07:53:22 浏览: 5
### Java Stream API `flatMap` 方法使用教程
#### 什么是 `flatMap`
`flatMap` 的主要作用是将一个流中的每个元素转换为另一个流,然后将这些流合并成一个单一的流。这种方法常用于处理嵌套的数据结构或多个数据源的情况[^2]。
#### 基本语法
标准语法如下:
```java
Stream<R> flatMap(Function<? super T, ? extends Stream<? extends R>> mapper)
```
此方法接受一个函数作为参数,该函数会应用于流中的每一个元素,并返回一个新的流。最终所有的新流被扁平化成为一个单独的流。
#### 实际案例分析
考虑有一个列表包含多个字符串数组的情形,目标是从这个复杂结构中提取所有独立的单词形成新的集合。
##### 示例代码展示
下面通过具体例子来说明如何利用 `flatMap` 达到目的:
```java
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class FlatMapExample {
public static void main(String[] args) {
List<String[]> wordsList = Arrays.asList(
new String[]{"hello", "world"},
new String[]{"java", "stream"}
);
// 使用 flatMap 将二维数组转化为一维流
List<String> result = wordsList.stream()
.flatMap(Arrays::stream)
.collect(Collectors.toList());
System.out.println(result); // 输出: [hello, world, java, stream]
}
}
```
这段程序展示了怎样运用 `flatMap` 来简化多层迭代逻辑,使得代码更加简洁易读[^3]。
阅读全文