Stream flatMapToInt(Function mapper) returns an IntStream 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. Stream flatMapToInt(Function mapper) 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 flatMapToInt(Function<? super T, ? extends IntStream> mapper) Where, IntStream is a sequence of primitive int-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.
Example 1 : flatMapToInt() function with operation of parsing string to Integer.
// Java code for Stream flatMapToInt // (Function mapper) to get an IntStream // 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 a list of Strings
List<String> list = Arrays.asList( "1" , "2" , "3" ,
"4" , "5" );
// Using Stream flatMapToInt(Function mapper)
list.stream().flatMapToInt(num -> IntStream.of(Integer.parseInt(num))).
forEach(System.out::println);
}
} |
Output :
1 2 3 4 5
Example 2 : flatMapToInt() function with operation of mapping string with their length.
// Java code for Stream flatMapToInt // (Function mapper) to get an IntStream // 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 a List of Strings
List<String> list = Arrays.asList( "Geeks" , "GFG" ,
"GeeksforGeeks" , "gfg" );
// Using Stream flatMapToInt(Function mapper)
// to get length of all strings present in list
list.stream().flatMapToInt(str -> IntStream.of(str.length())).
forEach(System.out::println);
}
} |
Output :
5 3 13 3