Java DoubleStream flatMap(DoubleFunction mapper)

来源:这里教程网 时间:2026-02-17 20:49:36 作者:

Java DoubleStream flatMap(DoubleFunction mapper)

DoubleStream flatMap(DoubleFunction mapper) 返回一个流,该流由对每个元素应用所提供的 映射函数 而产生的映射流的内容替换该流的每个元素的结果组成。这是一个 中间操作。 这些操作始终是懒惰的。中间操作在一个流实例上被调用,在它们完成处理后,它们给出一个流实例作为输出:

注意: 每个映射的流在其内容被放置到这个流中后被关闭。如果一个映射的流是空的,就会使用一个空的流来代替。

语法:

DoubleStream flatMap(DoubleFunction < **?** extends DoubleStream> mapper)

参数

    DoubleStream : 一个原始双值元素的序列。DoubleFunction : 一个接受双值参数并产生一个结果的函数。mapper : 一个无状态的函数,它被应用于每个元素,该函数返回新的流。

返回值: DoubleStream flatMap(DoubleFunction mapper)使用映射函数通过映射的流返回一个流。

例子1: 使用DoubleStream flatMap()来获得DoubleStream的元素立方体。

// Java code for DoubleStream flatMap// (DoubleFunction mapper) to get a stream// consisting of the results of replacing// each element of this stream with the// contents of a mapped streamimport java.util.*;import java.util.stream.DoubleStream;  class GFG {      // Driver code    public static void main(String[] args)    {        // Creating an DoubleStream        DoubleStream stream1 = DoubleStream.of(4.2, 5.3, 6.6, 7.0);          // Using DoubleStream flatMap()        DoubleStream stream2 = stream1.flatMap(num                   -> DoubleStream.of(num * num * num));          // Displaying the resulting DoubleStream        stream2.forEach(System.out::println);    }}

输出:

74.08800000000001148.87699999999998287.496343.0

例2: 使用DoubleStream flatMap()将DoubleStream的每个元素乘以0.7

// Java code for DoubleStream flatMap// (DoubleFunction mapper) to get a stream// consisting of the results of replacing// each element of this stream with the// contents of a mapped streamimport java.util.*;import java.util.stream.DoubleStream;  class GFG {      // Driver code    public static void main(String[] args)    {        // Creating an DoubleStream        DoubleStream stream1 = DoubleStream.of(5.2, 6.4, 8.1, 10.0);          // Using DoubleStream flatMap()        DoubleStream stream2 = stream1.flatMap(num                     -> DoubleStream.of(num * 0.7));          // Displaying the resulting IntStream        stream2.forEach(System.out::println);    }}

输出:

3.63999999999999974.47999999999999955.6699999999999997.0

相关推荐