📅  最后修改于: 2023-12-03 15:16:24.910000             🧑  作者: Mango
在Java 8中,LongStream接口提供了flatMap(LongFunction mapper)方法,该方法接收一个LongFunction函数式接口作为参数,将每个LongStream中的元素映射为一个新的流,将这些流串联到一起形成一个新的LongStream。
LongStream flatMap(LongFunction<? extends LongStream> mapper)
flatMap()方法返回一个组成所有新生成流的元素的LongStream。
下面是一个使用flatMap()方法将多个LongStream组合成一个LongStream的示例:
LongStream numStream1 = LongStream.of(1, 2, 3);
LongStream numStream2 = LongStream.of(4, 5, 6);
LongStream numStream3 = LongStream.of(7, 8, 9);
LongStream resultStream = LongStream.of(numStream1, numStream2, numStream3)
.flatMap(Function.identity());
resultStream.forEach(System.out::println); //输出1, 2, 3, 4, 5, 6, 7, 8, 9
上面的代码中,首先创建了三个LongStream,然后将它们通过flatMap()方法组合并输出到控制台。
flatMap()方法可以被用于合并多个流,但是需要注意的是在其中源LongStream没有被关闭。所以可以使用try-with-resource语句或手动关闭LongStream来确保资源得到正确的释放;
如果提供的映射函数返回了null,则flatMap()方法将会返回一个空的LongStream。