Flatten a Stream of Map in Java using forEach loop
Last Updated :
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 list
- This list is the required flattened map.
Below is the implementation of the above approach:
Example 1: Using lists of integer.
Java
// 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);
}
}
Output:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Example 2: Using lists of Characters.
Java
// 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);
}
}
Output:
[G, e, e, k, s, F, o, r, G, e, e, k, s]
Similar Reads
Flatten a Stream of Lists in Java using forEach loop Given a Stream of Lists in Java, the task is to Flatten the Stream using forEach() method. Examples: Input: lists = [ [1, 2], [3, 4, 5, 6], [8, 9] ] Output: [1, 2, 3, 4, 5, 6, 7, 8, 9] Input: lists = [ ['G', 'e', 'e', 'k', 's'], ['F', 'o', 'r'] ] Output: [G, e, e, k, s, F, o, r] Approach: Get the Li
3 min read
Flatten a Stream of Lists in Java using forEach loop Given a Stream of Lists in Java, the task is to Flatten the Stream using forEach() method. Examples: Input: lists = [ [1, 2], [3, 4, 5, 6], [8, 9] ] Output: [1, 2, 3, 4, 5, 6, 7, 8, 9] Input: lists = [ ['G', 'e', 'e', 'k', 's'], ['F', 'o', 'r'] ] Output: [G, e, e, k, s, F, o, r] Approach: Get the Li
3 min read
Flatten a Stream of Arrays in Java using forEach loop Given a Stream of Arrays in Java, the task is to Flatten the Stream using forEach() method. Examples: Input: arr[][] = {{ 1, 2 }, { 3, 4, 5, 6 }, { 7, 8, 9 }} Output: [1, 2, 3, 4, 5, 6, 7, 8, 9] Input: arr[][] = {{'G', 'e', 'e', 'k', 's'}, {'F', 'o', 'r'}} Output: [G, e, e, k, s, F, o, r] Approach:
3 min read
Flatten a Stream of Arrays in Java using forEach loop Given a Stream of Arrays in Java, the task is to Flatten the Stream using forEach() method. Examples: Input: arr[][] = {{ 1, 2 }, { 3, 4, 5, 6 }, { 7, 8, 9 }} Output: [1, 2, 3, 4, 5, 6, 7, 8, 9] Input: arr[][] = {{'G', 'e', 'e', 'k', 's'}, {'F', 'o', 'r'}} Output: [G, e, e, k, s, F, o, r] Approach:
3 min read
Stream forEach() method in Java with examples Stream forEach(Consumer action) performs an action for each element of the stream. Stream forEach(Consumer action) is a terminal operation i.e, it may traverse the stream to produce a result or a side-effect. Syntax : void forEach(Consumer<? super T> action) Where, Consumer is a functional int
2 min read
Stream forEach() method in Java with examples Stream forEach(Consumer action) performs an action for each element of the stream. Stream forEach(Consumer action) is a terminal operation i.e, it may traverse the stream to produce a result or a side-effect. Syntax : void forEach(Consumer<? super T> action) Where, Consumer is a functional int
2 min read