Aplane una secuencia de arrays en Java usando forEach loop

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

Ejemplos:

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]

Acercarse:

  1. Obtenga las arrays en forma de array 2D.
  2. Cree una lista vacía para recopilar los elementos aplanados.
  3. Con la ayuda de forEach loop, convierta cada elemento de la array en flujo y agréguelo a la lista
  4. Ahora convierta esta lista en flujo usando el método stream().
  5. Ahora aplana el flujo convirtiéndolo en una array usando el método toArray().

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

Ejemplo 1: uso de arrays de enteros.

// Java program to flatten a stream of arrays
// using forEach() method
  
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;
  
class GFG {
  
    // Function to flatten a Stream of Arrays
    public static <T> Stream<T> flattenStream(T[][] arrays)
    {
  
        // Create an empty list to collect the stream
        List<T> list = new ArrayList<>();
  
        // Using forEach loop
        // convert the array into stream
        // and add the stream into list
        for (T[] array : arrays) {
            Arrays.stream(array)
                .forEach(list::add);
        }
  
        // Convert the list into Stream and return it
        return list.stream();
    }
  
    public static void main(String[] args)
    {
  
        // Get the arrays to be flattened.
        Integer[][] arr = {
            { 1, 2 },
            { 3, 4, 5, 6 },
            { 7, 8, 9 }
        };
  
        // Flatten the Stream
        Integer[] flatArray = flattenStream(arr)
                                  .toArray(Integer[] ::new);
  
        // Print the flattened array
        System.out.println(Arrays.toString(flatArray));
    }
}
Producción:

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

Ejemplo 2: uso de arrays de caracteres.

// Java program to flatten a stream of arrays
// using forEach() method
  
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;
  
class GFG {
  
    // Function to flatten a Stream of Arrays
    public static <T> Stream<T> flattenStream(T[][] arrays)
    {
  
        // Create an empty list to collect the stream
        List<T> list = new ArrayList<>();
  
        // Using forEach loop
        // convert the array into stream
        // and add the stream into list
        for (T[] array : arrays) {
            Arrays.stream(array)
                .forEach(list::add);
        }
  
        // Convert the list into Stream and return it
        return list.stream();
    }
  
    public static void main(String[] args)
    {
  
        // Get the arrays to be flattened.
        Character[][] arr = {
            { 'G', 'e', 'e', 'k', 's' },
            { 'F', 'o', 'r' },
            { 'G', 'e', 'e', 'k', 's' }
        };
  
        // Flatten the Stream
        Character[] flatArray = flattenStream(arr)
                                    .toArray(Character[] ::new);
  
        // Print the flattened array
        System.out.println(Arrays.toString(flatArray));
    }
}
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 *