Stream flatMapToDouble(Function mapper)返回一个DoubleStream,该DoubleStream包含将该流的每个元素替换为通过将提供的映射函数应用于每个元素而生成的映射流的内容而得到的结果。 Stream flatMapToDouble(Function mapper)是一个中间操作。这些操作总是很懒。在Stream实例上调用中间操作,并在完成处理后将中间实例作为输出提供。
注意:将每个映射流的内容放入该流后,将其关闭。如果映射的流为null,则使用空流。
用法:
DoubleStream flatMapToDouble(Function super T, ? extends DoubleStream> mapper)
Where, DoubleStream is a sequence of primitive
double-valued elements and T is the type
of stream elements. mapper is a stateless function
which is applied to each element and the function
returns the new stream.
示例1:flatMapToDouble()函数,具有将字符串解析为两倍的操作。
// Java code for Stream flatMapToDouble
// (Function mapper) to get an DoubleStream
// 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 a list of Strings
List list = Arrays.asList("1.5", "2.7", "3",
"4", "5.6");
// Using Stream flatMapToDouble(Function mapper)
list.stream().flatMapToDouble(num
-> DoubleStream.of(Double.parseDouble(num)))
.forEach(System.out::println);
}
}
输出:
1.5
2.7
3.0
4.0
5.6
示例2:flatMapToDouble()函数,用于返回具有字符串长度的流。
// Java code for Stream flatMapToDouble
// (Function mapper) to get an DoubleStream
// 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 a List of Strings
List list = Arrays.asList("Geeks", "GFG",
"GeeksforGeeks", "gfg");
// Using Stream flatMapToDouble(Function mapper)
// to get length of all strings present in list
list.stream().flatMapToDouble(str
-> DoubleStream.of(str.length()))
.forEach(System.out::println);
}
}
输出:
5.0
3.0
13.0
3.0