Flatten a Stream of Map in Java using forEach loop - GeeksforGeeks

11 Dec, 2018
Given a Stream of Map in Java, the task is to Flatten the Stream using forEach() method.
Examples:
Input: map = {1=[1, 2], 2=[3, 4, 5, 6], 3=[7, 8, 9]}
Output: [1, 2, 3, 4, 5, 6, 7, 8, 9]

Input: map = {1=[G, e, e, k, s], 2=[F, o, r], 3=[G, e, e, k, s]}
Output: [G, e, e, k, s, F, o, r]

Approach:
Get the Map to be flattened.Create an empty list to collect the flattened elements.With the help of forEach loop, convert each elements of the Map values into stream and add it to the listThis list is the required flattened map.
Get the Map to be flattened.
Create an empty list to collect the flattened elements.
With the help of forEach loop, convert each elements of the Map values into stream and add it to the list
This list is the required flattened map.
Below is the implementation of the above approach:
Example 1: Using lists of integer.
// Java program to flatten a stream of map// using forEach() method  import java.util.*;import java.util.stream.*;  class GFG {      // Function to flatten a Stream of Map    public static <T> List<T> flattenStream(Collection<List<T> > lists)    {          // Create an empty list to collect the stream        List<T> finalList = new ArrayList<>();          // Using forEach loop        // convert each list into stream        // and add the stream into list        for (List<T> list : lists) {            list.stream()                .forEach(finalList::add);        }          // Return the final flattened list        return finalList;    }      public static void main(String[] args)    {          // Get the map to be flattened.        Map<Integer, List<Integer> > map = new HashMap<>();        map.put(1, Arrays.asList(1, 2));        map.put(2, Arrays.asList(3, 4, 5, 6));        map.put(3, Arrays.asList(7, 8, 9));          // Flatten the Stream        List<Integer> flatList = flattenStream(map.values());          // Print the flattened list        System.out.println(flatList);    }}
[1, 2, 3, 4, 5, 6, 7, 8, 9]

Example 2: Using lists of Characters.
// Java program to flatten a stream of map// using forEach() method  import java.util.*;import java.util.stream.*;  class GFG {      // Function to flatten a Stream of Map    public static <T> List<T> flattenStream(Collection<List<T> > lists)    {          // Create an empty list to collect the stream        List<T> finalList = new ArrayList<>();          // Using forEach loop        // convert each list into stream        // and add the stream into list        for (List<T> list : lists) {            list.stream()                .forEach(finalList::add);        }          // Return the final flattened list        return finalList;    }      public static void main(String[] args)    {          // Get the map to be flattened.        Map<Integer, List<Character> > map = new HashMap<>();        map.put(1, Arrays.asList('G', 'e', 'e', 'k', 's'));        map.put(2, Arrays.asList('F', 'o', 'r'));        map.put(3, Arrays.asList('G', 'e', 'e', 'k', 's'));          // Flatten the Stream        List<Character> flatList = flattenStream(map.values());          // Print the flattened list        System.out.println(flatList);    }}
[G, e, e, k, s, F, o, r, G, e, e, k, s]

Java - util package
Java-Collections
java-map
Java-Map-Programs
Java-Stream-programs
Java
Java
Java-Collections
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Object Oriented Programming (OOPs) Concept in Java
HashMap in Java with Examples
Interfaces in Java
How to iterate any Map in Java
ArrayList in Java
Initialize an ArrayList in Java
Stack Class in Java
Singleton Class in Java
Multidimensional Arrays in Java
Set in Java