java flatMap
时间: 2023-10-31 19:57:46 浏览: 98
Java中的flatMap()方法是Stream API中的一个操作,它用于将一个流中的每个元素映射为一个流,然后将所有生成的流连接成一个单一的流。换句话说,它将多个流合并为一个流。
flatMap()方法的语法如下:
```java
<R> Stream<R> flatMap(Function<? super T,? extends Stream<? extends R>> mapper)
```
该方法接受一个函数作为参数,该函数将流中的每个元素映射为一个流,并返回新的流。对于原始流中的每个元素,flatMap()方法都会应用该函数,并将其生成的流合并成一个新的流。
下面是一个示例,演示了如何使用flatMap()方法:
```java
List<String> list = Arrays.asList("Hello", "World");
List<String> result = list.stream()
.flatMap(str -> Stream.of(str.split("")))
.collect(Collectors.toList());
System.out.println(result);
```
输出结果:
```
[H, e, l, l, o, W, o, r, l, d]
```
在上面的示例中,我们首先创建了一个包含两个字符串的列表("Hello"和"World")。然后,我们使用stream()方法创建了一个流,并使用flatMap()方法将每个字符串拆分为单个字符的流。最后,我们使用collect()方法将所有字符收集到一个新的列表中。
通过使用flatMap()方法,我们可以轻松地处理具有嵌套结构的数据,并将其展平为单层结构的流。
阅读全文