.stream().flatMap
时间: 2023-07-13 12:16:48 浏览: 93
浅谈java8 stream flatMap流的扁平化操作
`.stream().flatMap` 是 Java 8 中 Stream API 中的一个方法组合,用于将一个流中的每个元素映射为一个新的流,并将这些新的流合并成一个流。其语法结构如下:
```
stream.flatMap(Function<? super T, ? extends Stream<? extends R>> mapper)
```
其中,`stream` 是一个流,`mapper` 是一个函数,用于将流中的每个元素映射为一个新的流。`mapper` 的返回值是一个 `Stream` 类型的流,表示映射后的新流。`flatMap` 方法会将这些新的流合并成一个流。
例如,假设有一个字符串列表,我们想要将列表中的每个字符串按照空格分割后再合并成一个流。可以使用 `.stream().flatMap` 方法来实现,代码如下:
```
List<String> list = Arrays.asList("hello world", "java is fun");
Stream<String> stream = list.stream().flatMap(str -> Arrays.stream(str.split(" ")));
stream.forEach(System.out::println);
```
在这个例子中,我们首先将字符串列表转换为一个流,然后使用 `flatMap` 方法将每个字符串按照空格分割后再合并成一个流。最后使用 `forEach` 方法输出流中的每个元素。程序的输出结果为:
```
hello
world
java
is
fun
```
阅读全文