Stream中flatMap
时间: 2023-11-01 09:56:02 浏览: 99
浅谈java8 stream flatMap流的扁平化操作
flatMap 是 Stream 中的一个中间操作,它接受一个函数作为参数,将每个元素映射为一个 Stream,然后将这些 Stream 连接起来形成一个新的 Stream。
在 Stream 中使用 flatMap,可以将一个多维的数据结构展开成一个扁平化的流。例如,假设我们有一个包含多个列表的 Stream,我们可以使用 flatMap 将这些列表展开成一个单独的流。
下面是一个示例代码,演示了如何使用 flatMap 方法:
```java
List<List<Integer>> numbers = Arrays.asList(
Arrays.asList(1, 2),
Arrays.asList(3, 4),
Arrays.asList(5, 6)
);
List<Integer> flattenedNumbers = numbers.stream()
.flatMap(List::stream)
.collect(Collectors.toList());
System.out.println(flattenedNumbers); // 输出 [1, 2, 3, 4, 5, 6]
```
在上面的代码中,我们有一个包含三个列表的 Stream(numbers),通过使用 flatMap 方法和 List::stream 函数,我们将这些列表展开成一个单独的流。最后,我们使用 collect 方法将展开后的流收集到一个列表中。
总结一下,flatMap 方法可以用于将多维数据结构展开成一个扁平化的流。
阅读全文