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:
- Consigue que el mapa se aplane.
- Cree una lista vacía para recopilar los elementos aplanados.
- Con la ayuda del bucle forEach, convierta cada elemento de los valores del mapa en flujo y agréguelo a la lista
- 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