flatMap
是 Java 8 中引入的一个 Stream API 方法,它用于将多个 Stream 合并为一个 Stream。在处理流操作时,flatMap
非常有用,因为它可以将嵌套的 Stream 结构扁平化为一个 Stream。flatMap
的签名如下:
Stream flatMap(Function super T, ? extends Stream extends R>> mapper);
其中,T
是原始 Stream 的元素类型,R
是扁平化后的 Stream 的元素类型,mapper
是一个函数,它接受一个 T
类型的元素并返回一个 Stream
类型的结果。
下面是一个简单的示例,说明如何使用 flatMap
处理流操作:
import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class FlatMapExample { public static void main(String[] args) { // 创建一个 List> 结构 List
> nestedList = Arrays.asList( Arrays.asList("A", "B"), Arrays.asList("C", "D", "E"), Arrays.asList("F") ); // 使用 flatMap 将嵌套的 List 扁平化为一个 String 类型的 Stream Stream
flatStream = nestedList.stream() .flatMap(list -> list.stream()); // 收集扁平化后的 Stream 到一个新的 List 中 List result = flatStream.collect(Collectors.toList()); // 输出结果 System.out.println(result); // 输出:[A, B, C, D, E, F] } }
在这个示例中,我们首先创建了一个 List
结构。然后,我们使用 >
flatMap
方法将嵌套的 List 扁平化为一个 String 类型的 Stream。最后,我们使用 collect
方法将扁平化后的 Stream 收集到一个新的 List 中,并输出结果。