Programa para convertir flujo a una array en Java

Un Stream es una secuencia de objetos que admiten varios métodos que se pueden canalizar para producir el resultado deseado.

Una array es un grupo de variables del mismo tipo a las que se hace referencia con un nombre común. Una array puede contener tipos de datos primitivos, así como objetos de una clase, según la definición de la array. En el caso de tipos de datos primitivos, los valores reales se almacenan en ubicaciones de memoria contiguas. En el caso de objetos de una clase, los objetos reales se almacenan en un segmento de montón.

A continuación se muestran varios métodos para convertir Stream en una array:

  1. Uso de toArray() : Stream proporciona el método toArray() que devuelve una array que contiene los elementos de la secuencia en forma de array de objetos.

    Sintaxis:

    stream.toArray()

    Algoritmo :

    1. Obtener la corriente
    2. Convierta Stream en un Array usando el método Stream.toArray().
    3. La array obtenida es de tipo Object[]
    4. Devuelve el objeto de array []

    Programa:

    // Java Program to convert
    // Stream to array in Java 8
      
    import java.util.*;
    import java.util.stream.*;
    import java.util.function.Function;
      
    class GFG {
      
        // Function to convert Stream to Array
        public static <T> Object[] convertStreamToArray(Stream<T> stream)
        {
            return stream.toArray();
        }
      
        public static void main(String args[])
        {
            // Create a stream of integers
            Stream<Integer> stream = Stream.of(1, 2, 3, 4, 5);
      
            // Convert Stream to array
            Object[] array = convertStreamToArray(stream);
      
            // Print the array of stream
            System.out.println("Array from Stream: "
                               + Arrays.toString(array));
        }
    }
    Producción:

    Array from Stream: [1, 2, 3, 4, 5]
    
  2. Uso de toArray ( generador de funciones internas) : este método devuelve una array que contiene los elementos de esta secuencia, utilizando la función de generador proporcionada para asignar la array devuelta, así como cualquier array adicional que pueda ser necesaria para una ejecución particionada o para cambiar el tamaño.

    Sintaxis:

    <A> A[] toArray(IntFunction<A[]> generator)

    Algoritmo :

    1. Obtener la corriente
    2. Convierta Stream en una array usando el método Stream.toArray() pasando Object[]::new como la función generadora para asignar la array devuelta.
    3. La array obtenida es de tipo Object[]
    4. Devuelve el objeto de array []

    Programa:

    // Java Program to convert
    // Stream to array in Java 8
      
    import java.util.*;
    import java.util.stream.*;
    import java.util.function.Function;
      
    class GFG {
      
        // Function to convert Stream to Array
        public static <T> Object[] convertStreamToArray(Stream<T> stream)
        {
            return stream.toArray(Object[] ::new);
        }
      
        public static void main(String args[])
        {
      
            // Create a stream of integers
            Stream<Integer> stream = Stream.of(1, 2, 3, 4, 5);
      
            // Convert Stream to array
            Object[] array = convertStreamToArray(stream);
      
            // Print the array of stream
            System.out.println("Array from Stream: "
                               + Arrays.toString(array));
        }
    }
    Producción:

    Array from Stream: [1, 2, 3, 4, 5]
    
  3. Corrientea int[] usando mapToInt(): Java 8 Stream API proporciona el método mapToInt() que devuelve un IntStream que consta de los resultados de aplicar la función dada a los elementos de este flujo. Esta es una operación intermedia. El IntStream obtenido luego se convierte en int[] usando toArray().

    Algoritmo :

    1. Obtener el flujo de enteros
    2. Convierta Stream en un IntStream usando el método Stream.mapToInt().
    3. Convierta el IntStream obtenido en int[] usando toArray()
    4. La array obtenida es de tipo Integer
    5. Devuelve el Array int[]

    Programa:

    // Java Program to convert
    // Stream to array in Java 8
      
    import java.util.*;
    import java.util.stream.*;
    import java.util.function.Function;
      
    class GFG {
      
        // Function to convert Stream to Array
        public static int[] convertStreamToArray(Stream<Integer> stream)
        {
            return stream.mapToInt(Integer::intValue).toArray();
        }
      
        public static void main(String args[])
        {
      
            // Create a stream of integers
            Stream<Integer> stream = Stream.of(1, 2, 3, 4, 5);
      
            // Convert Stream to array
            int[] array = convertStreamToArray(stream);
      
            // Print the array of stream
            System.out.println("Array of Integer from Stream: "
                               + Arrays.toString(array));
        }
    }
    Producción:

    Array of Integer from Stream: [1, 2, 3, 4, 5]
    

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 *