Dada una secuencia de listas en Java, la tarea es aplanar la secuencia utilizando el método forEach().
Ejemplos:
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]
Acercarse:
- Obtenga las Listas en forma de lista 2D.
- Cree una lista vacía para recopilar los elementos aplanados.
- Con la ayuda de forEach loop, convierta cada elemento de la lista en flujo y agréguelo a la lista
- Ahora convierta esta lista en flujo usando el método stream().
- Ahora aplana el flujo convirtiéndolo en una lista usando el método collect().
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 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); } }
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 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); } }
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