Friday, September 5, 2025
HomeLanguagesJavaFlatten a Stream of Lists in Java using forEach loop

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:

  1. Get the Lists in the form of 2D list.
  2. Create an empty list to collect the flattened elements.
  3. With the help of forEach loop, convert each elements of the list into stream and add it to the list
  4. Now convert this list into stream using stream() method.
  5. Now flatten the stream by converting it into list using collect() method.

Below is the implementation of the above approach:

Example 1: Using lists of integer.




// Java program to flatten a stream of lists
// using forEach() method
  
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.*;
  
class GFG {
  
    // Function to flatten a Stream of Lists
    public static <T> Stream<T> flattenStream(List<List<T> > lists)
    {
  
        // Create an empty list to collect the stream
        List<T> finalList = new ArrayList<>();
  
        // Using forEach loop
        // convert the list into stream
        // and add the stream into list
        for (List<T> list : lists) {
            list.stream()
                .forEach(finalList::add);
        }
  
        // Convert the list into Stream and return it
        return finalList.stream();
    }
  
    public static void main(String[] args)
    {
  
        // Get the lists to be flattened.
        List<Integer> a = Arrays.asList(1, 2);
        List<Integer> b = Arrays.asList(3, 4, 5, 6);
        List<Integer> c = Arrays.asList(7, 8, 9);
  
        List<List<Integer> > arr = new ArrayList<List<Integer> >();
        arr.add(a);
        arr.add(b);
        arr.add(c);
  
        // Flatten the Stream
        List<Integer> flatList = new ArrayList<Integer>();
        flatList = flattenStream(arr)
                       .collect(Collectors.toList());
  
        // 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 program to flatten a stream of lists
// using forEach() method
  
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.*;
  
class GFG {
  
    // Function to flatten a Stream of Lists
    public static <T> Stream<T> flattenStream(List<List<T> > lists)
    {
  
        // Create an empty list to collect the stream
        List<T> finalList = new ArrayList<>();
  
        // Using forEach loop
        // convert the list into stream
        // and add the stream into list
        for (List<T> list : lists) {
            list.stream()
                .forEach(finalList::add);
        }
  
        // Convert the list into Stream and return it
        return finalList.stream();
    }
  
    public static void main(String[] args)
    {
  
        // Get the lists to be flattened.
        List<Character> a = Arrays.asList('G', 'e', 'e', 'k', 's');
        List<Character> b = Arrays.asList('F', 'o', 'r');
        List<Character> c = Arrays.asList('G', 'e', 'e', 'k', 's');
  
        List<List<Character> > arr = new ArrayList<List<Character> >();
        arr.add(a);
        arr.add(b);
        arr.add(c);
  
        // Flatten the Stream
        List<Character> flatList = new ArrayList<Character>();
        flatList = flattenStream(arr)
                       .collect(Collectors.toList());
  
        // Print the flattened list
        System.out.println(flatList);
    }
}


Output:

[G, e, e, k, s, F, o, r, G, e, e, k, s]
RELATED ARTICLES

Most Popular

Dominic
32264 POSTS0 COMMENTS
Milvus
81 POSTS0 COMMENTS
Nango Kala
6634 POSTS0 COMMENTS
Nicole Veronica
11801 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11863 POSTS0 COMMENTS
Shaida Kate Naidoo
6750 POSTS0 COMMENTS
Ted Musemwa
7025 POSTS0 COMMENTS
Thapelo Manthata
6701 POSTS0 COMMENTS
Umr Jansen
6718 POSTS0 COMMENTS