IntStream flatMap(IntFunction mapper) in Java
IntStream flatMap(IntFunction mapper) returns a stream consisting of the results of replacing each element of this stream with the contents of a mapped stream produced by applying the provided mapping function to each element. This is an intermediate operation. These operations are always lazy. Intermediate operations are invoked on a Stream instance and after they finish their processing, they give a Stream instance as output.
Note : Each mapped stream is closed after its contents have been placed into this stream. If a mapped stream is null, an empty stream is used, instead.
Syntax :
IntStream flatMap(IntFunction<? extends IntStream> mapper)
Parameters :
- IntStream : A sequence of primitive int-valued elements.
- IntFunction : A function that accepts an int-valued argument and produces a result.
- mapper : A stateless function which is applied to each element and the function returns the new stream.
Return Value : IntStream flatMap(IntFunction mapper) returns a stream by a mapped stream using mapping function.
Example 1 : Using IntStream flatMap() to get the cube of elements of 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); } } |
Output :
64 125 216 343
Example 2 :Using IntStream flatMap() to get the count of set bits in binary representation of elements of 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); } } |
Output :
3 1 3 3