Aplane una secuencia de mapa en Java usando forEach loop

Dado un Stream of Map en Java, la tarea es aplanar el Stream usando el método forEach().

Ejemplos:

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]

Acercarse:

  1. Consigue que el mapa se aplane.
  2. Cree una lista vacía para recopilar los elementos aplanados.
  3. Con la ayuda del bucle forEach, convierta cada elemento de los valores del mapa en flujo y agréguelo a la lista
  4. Esta lista es el mapa aplanado requerido.

A continuación se muestra la implementación del enfoque anterior:

Ejemplo 1: Uso de listas de enteros.

// 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);
    }
}
Producción:

[1, 2, 3, 4, 5, 6, 7, 8, 9]

Ejemplo 2: Uso de listas de Personajes.

// 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);
    }
}
Producción:

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

Publicación traducida automáticamente

Artículo escrito por RishabhPrabhu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *