Stream flatMapToInt() in Java with examples
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
Please Login to comment...