Java的IntStream flatMap(IntFunction mapper)
IntStream flatMap(IntFunction mapper)返回一个流,该流由通过将提供的映射函数应用于每个元素而生成的映射流的内容替换此流的每个元素的结果组成。这是一个中间操作。这些操作总是懒惰的。中间操作在 Stream 实例上调用,在它们完成处理后,它们给出一个 Stream 实例作为输出。
注意:每个映射流在其内容放入此流后关闭。如果映射流为空,则使用空流代替。
句法 :
IntStream flatMap(IntFunction extends IntStream> mapper)
参数 :
- IntStream :原始 int 值元素的序列。
- IntFunction :一个函数,它接受一个 int 值参数并产生一个结果。
- mapper :一个无状态函数,应用于每个元素,该函数返回新的流。
返回值: IntStream flatMap(IntFunction mapper) 通过映射流使用映射函数返回流。
示例 1:使用 IntStream flatMap() 获取 IntStream 元素的立方体。
// Java code for IntStream flatMap
// (IntFunction 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.IntStream;
class GFG {
// Driver code
public static void main(String[] args)
{
// Creating an IntStream
IntStream stream1 = IntStream.of(4, 5, 6, 7);
// Using IntStream flatMap()
IntStream stream2 = stream1.flatMap(num
-> IntStream.of(num * num * num));
// Displaying the resulting IntStream
stream2.forEach(System.out::println);
}
}
输出 :
64
125
216
343
示例 2:使用 IntStream flatMap() 获取 IntStream 元素的二进制表示中设置位的计数。
// Java code for IntStream flatMap
// (IntFunction 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.IntStream;
class GFG {
// Driver code
public static void main(String[] args)
{
// Creating an IntStream
IntStream stream1 = IntStream.of(49, 64, 81, 100);
// Using IntStream flatMap()
IntStream stream2 = stream1.flatMap(num
-> IntStream.of(Integer.bitCount(num)));
// Displaying the resulting IntStream
stream2.forEach(System.out::println);
}
}
输出 :
3
1
3
3