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:
- 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]
- 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]
- 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]
- 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]
- 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:
- https://docs.oracle.com/javase/8/docs/api/java/util/stream/package-summary.html
- https://docs.oracle.com/javase/8/docs/api/java/util/stream/Collectors.html
- https://docs.oracle.com/javase/9/docs/api/java/util/List.html
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