Conversión de Array a ArrayList en Java

Una array es una colección de elementos que pueden ser de tipos de datos primitivos u objetos. Las arrays en Java son estáticas por naturaleza. ArrayLists, por otro lado, solo puede almacenar elementos como objetos. Las ArrayLists en Java, a diferencia de las arrays, son de naturaleza dinámica. Una ArrayList es una clase de colección presente en el paquete java.util que implementa la interfaz java.util.List .

Una array se puede convertir en una ArrayList usando los siguientes métodos:

  1. Usar el método ArrayList.add() para agregar manualmente los elementos de la array en ArrayList : este método implica crear una nueva ArrayList y agregar todos los elementos de la array dada a la ArrayList recién creada usando el método add().
    Syntax: public void add(int index, E element)
    

    Parámetros: Esta función acepta 2 parámetros obligatorios:

    • índice : el índice en el que se insertará el elemento especificado.
    • elemento : el elemento que se va a insertar.

    Devoluciones: el método no devuelve ningún valor

    Excepción(es): el método lanza IndexOutOfBoundsException si el índice está fuera de rango.

    Ejemplo:

    // Java program to illustrate conversion 
    // of an array to an ArrayList
      
    import java.util.Arrays;
    import java.util.ArrayList;
      
    class ArrayToArrayList {
        public static void func1(int arr[])
        {
            ArrayList<Integer> array_list = 
                    new ArrayList<Integer>();
      
            // Using add() method to add elements in array_list
            for (int i = 0; i < arr.length; i++)
                array_list.add(new Integer(arr[i]));
            System.out.print(array_list);
        }
      
        public static void main(String[] args)
        {
      
            int array[] = { 1, 2, 3, 4, 5 };
            func1(array);
        }
    }
    Producción:

    [1, 2, 3, 4, 5]
    
  2. Usando el método Arrays.asList() de la clase java.utils.Arrays: este método convierte la array en una lista y luego pasa la lista como parámetro para inicializar una nueva ArrayList con los valores de la lista.
    Syntax: public static List asList(T[] a)
    

    Parámetros: El método acepta un parámetro mandotorio T[] a, donde a es la array por la que se respaldará la lista y T es el tipo de array.

    Devoluciones: el método devuelve una vista de lista de la array especificada.

    Ejemplo:

    // Java program to illustrate conversion
    // of an array to an ArrayList
      
    import java.util.Arrays;
    import java.util.ArrayList;
      
    class ArrayToArrayList {
        public static void func2(Integer arr[])
        {
            // Using Arrays.asList() method
            ArrayList<Integer> array_list = 
                new ArrayList<Integer>(Arrays.asList(arr));
            System.out.print(array_list);
        }
      
        public static void main(String[] args)
        {
      
            // Integer objects are used instead
            // of primitives for conversion to list
            Integer array[] = { new Integer(1),
                                new Integer(2),
                                new Integer(3),
                                new Integer(4),
                                new Integer(5) };
            func2(array);
        }
    }
    Producción:

    [1, 2, 3, 4, 5]
    
  3. Uso del método Collections.addAll() de la clase java.utils.Collections: este método toma ArrayList en el que se insertarán los valores de array como primer parámetro; y el Array cuyos valores se utilizarán como segundo parámetro. Luego copia los valores de Array en ArrayList.
    Syntax: public static boolean addAll(Collection c, T.. a)
    

    Parámetros: El método acepta 2 parámetros obligatorios:

    • c : esta es la colección en la que se van a insertar los elementos.
    • a – Array a insertar en c, de tipo T

    Devoluciones: el método devuelve ‘verdadero’ si la colección cambió como resultado de la llamada, ‘falso’ de lo contrario.

    Excepción(es): el método arroja

    • Excepción de operación no admitida .
    • NullPointerException si la colección especificada es nula.
    • IllegalArgumentException si algún aspecto de un valor en la array impide que se agregue a c.

    Ejemplo:

    // Java program to illustrate conversion 
    // of an array to an ArrayList
      
    import java.util.Collections;
    import java.util.ArrayList;
      
    class ArrayToArrayList {
        public static void func3(String arr[])
        {
            ArrayList<String> array_list = new ArrayList<String>();
      
            // Using Collections.addAll() method
            Collections.addAll(array_list, arr);
            System.out.print(array_list);
        }
      
        public static void main(String[] args)
        {
      
            String array[] = { "ABC", "DEF", "GHI", "JKL" };
            func3(array);
        }
    }
    Producción:

    [ABC, DEF, GHI, JKL]
    
  4. Uso del método Arrays.stream() de la clase java.utils.Arrays: este método crea un flujo secuencial de los valores de la array. Luego, con la ayuda del método collect() y la secuencia, los valores se copian en ArrayList.
    Syntax: public static IntStream stream(T[] a)
    

    Parámetros: el método acepta un parámetro obligatorio ‘a’, que es la array que se convertirá en un flujo de tipo T.
    Devoluciones: el método devuelve una secuencia del tipo especificado de la array (aquí es Int).

    Explicación:
    se usa el método Arrays.stream().collect() que usa la clase java.util.stream.Collectors para convertir el flujo en una lista con la ayuda del método toList() .

    Nota: este método requiere Java 8 o versiones superiores.

    Ejemplo:

    // Java program to illustrate conversion 
    // of an array to an ArrayList
      
    import java.util.Arrays;
    import java.util.ArrayList;
    import java.util.stream.Collectors;
      
    class ArrayToArrayList {
        public static void func4(String arr[])
        {
            // Using Arrays.stream.collect() method.
            ArrayList<String> array_list = (ArrayList<String>)
                        Arrays.stream(arr)
                              .collect(Collectors.toList());
            System.out.print(array_list);
        }
      
        public static void main(String[] args)
        {
      
            String array[] = { "ABC", "DEF", "GHI", "JKL" };
            func4(array);
        }
    }
    Producción:

    [ABC, DEF, GHI, JKL]
    
  5. Uso del método List.of(Elements) de la interfaz java.utils.List: este método toma la array como parámetro y luego crea una lista inmutable de los valores de la array. Esta lista inmutable luego se pasa como parámetro para crear una nueva ArrayList,
    Syntax: static {T} List{T} of(a)
    

    Parámetros: el método acepta un parámetro obligatorio ‘a’ que es la array que se convertirá y T significa el tipo de elemento de la lista (esto se puede omitir).
    Devoluciones: el método devuelve una lista que contiene los elementos especificados.
    Excepción(es): el método lanza una NullPointerException si la array es nula.

    Nota: este método requiere Java 9 o versiones superiores.

    Ejemplo:

    // Java program to illustrate conversion 
    // of an array to an ArrayList
      
    import java.util.List;
    import java.util.Arrays;
    import java.util.ArrayList;
    import java.util.stream.Collectors;
      
    class ArrayToArrayList {
        public static void func5(String arr[])
        {
            // Using List.of() method.
            ArrayList<String> array_list = 
            new ArrayList<String>(List.of(arr));
            System.out.print(array_list);
        }
      
        public static void main(String[] args)
        {
            String array[] = { "ABC", "DEF", "GHI", "JKL" };
            func5(array);
        }
    }
    Producción:

    [ABC, DEF, GHI, JKL]
    

Referencias:

Publicación traducida automáticamente

Artículo escrito por SouravAChowdhury_97 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 *