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",                                          "Lazyroar", "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
