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 stream
import 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.08800000000001
148.87699999999998
287.496
343.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 stream
import 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.6399999999999997
4.4799999999999995
5.669999999999999
7.0