CodeGym /Blog Java /Random-ES /Conversión de Array a ArrayList en Java
Autor
Artem Divertitto
Senior Android Developer at United Tech

Conversión de Array a ArrayList en Java

Publicado en el grupo Random-ES
¡Hola! En la lección de hoy, hablaremos sobre cómo inicializar una matriz en Java y cómo convertir una matriz en una lista de matrices. Los arreglos son una extensión de la clase Container en Java y pueden ser útiles como una forma de almacenar temporalmente un conjunto de tipos de datos primitivos cuando se conoce específicamente la cantidad de datos. Pero las matrices son estáticas cuando se crean, lo que significa que cuando crea una, no puede cambiar la cantidad de elementos que contiene. Debe recordar cómo inicializar una matriz en Java; se parece a esto:

datatype[] isArray;
Donde tipo de datos es cualquier tipo de datos primitivo como int, float, long o incluso String. También puede colocar los corchetes después de la declaración de la siguiente manera:

datatype isArray[];
Entonces, ¿cómo tomamos esta matriz estática con un número determinado de elementos y la convertimos en una ArrayList? Bueno, primero, veamos qué es un ArrayList.

La lista de arreglos

Una ArrayList puede tener un nombre similar a un Array, pero se maneja de manera completamente diferente. Eso es porque una ArrayList no extiende la clase Container, extiende la clase List. Y eso significa que todo se maneja de manera diferente. Por un lado, debido a que es una Lista, puede manipularla de manera diferente. Puede aumentar o disminuir el tamaño de ArrayList usando add(element) , que coloca el elemento al final de la Lista y aumenta el tamaño en uno si es necesario. O puede usar trimToSize()que elimina los índices vacíos al final y recorta ArrayList a su tamaño actual. Entonces puede ver que hay algunas ventajas al usar un ArrayList en lugar de solo una matriz. A continuación, le mostraremos dos métodos para convertir de un Array a un ArrayList y cómo retroceder si es necesario.

Pasar de Array a ArrayList y ArrayList a Array en Java

Entonces, supongamos que ha escrito un programa para mantener un inventario de cuántas tuercas y tornillos tiene su empresa a mano para reparar árboles para gatos. Durante años, solo ha necesitado 30 tipos diferentes de ellos, por lo que ha sido fácil usar una matriz para realizar un seguimiento. Pero ahora tiene un nuevo cliente que requiere que almacene 5 tipos adicionales. ¿Cómo puede cambiar su programa y mantener todos sus datos, Y evitar tener que hacer esto nuevamente cuando recoja a otro cliente? ¡Así es! ¡Una lista de arreglos! Entonces, ¿cómo se convierte una matriz de Java en una ArrayList? Hay tres métodos. Usando el método .asList(), las matrices de Java tienen una gran herramienta que puede ver cuando mira la API llamada .asList() . Así que podrías escribir en esto:

boltInventory.asList(bolts);
El problema con este método es que no crea una verdadera ArrayList. Lo que hace es crear una Lista de tamaño fijo e inalterable. Por lo tanto, aún no puede cambiar el tamaño de forma dinámica. Intentar agregar o quitar elementos causará una excepción. Entonces, si bien esto tiene sus usos, no es una verdadera conversión. Pero podemos usar esto. Uso de .asList() como argumento Esta es la segunda forma de convertir una matriz en una lista en Java. Debido a que el método .asList() crea una Lista, podemos usarla para pasar una referencia a nuestra ArrayList real. Aquí se explica cómo inicializar una ArrayList:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>();
Esto creará una ArrayList que tiene diez celdas vacías. Sin embargo, el () al final se puede usar para pasar un argumento para llenar ArrayList. Entonces, combinándolo con el método .asList , tiene:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>(Arrays.asList(bolts));
Esto pasa la Lista creada por el método .asList() a ArrayList, por lo que ahora puede manipularla dinámicamente según lo necesite. Usando el método Collections.addAll() Otra forma de convertir un Array a un ArrayList en Java es usar este método. Pasa el contenido de Array a ArrayList. La sintaxis genérica para este método es:

Collections.addAll(c, T);
Donde c es el destino y T es lo que se está pasando. Entonces, para nuestro ejemplo, la sintaxis se vería así:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>():
Collections.addAll(boltsInventory, bolts);
Esto pasará todo el contenido de los pernos Array a la nueva ArrayList. Conversión de una ArrayList en una matriz Puede haber un momento en el que necesite convertir una ArrayList en una matriz en Java. Si lo hace, ArrayList tiene un método .toArray(a) , donde a es el destino. Entonces, para nuestro ejemplo, la sintaxis sería:

Integer boltsInventoryArray[] = new Integer{boltsInventory.size()];
// this ensures the newly created array is of the same size as the ArrayList
boltsInventoryArray = boltsInventory.toArray(boltsInventoryArray);
Cuando cambia una lista a una matriz en Java como esta, está creando una copia profunda. Es decir, todas las referencias a Array son diferentes de las referencias a ArrayList. Por lo tanto, puede manipular los datos en Array sin cambiar los datos almacenados en ArrayList. Es útil convertir una lista de Java en una matriz cuando necesita probar datos.

Conclusión

Las matrices son muy útiles para el acceso rápido y la manipulación rápida de conjuntos de datos más pequeños, pero la incapacidad de cambiar su tamaño significa que pierden rápidamente la eficiencia para el uso a largo plazo. Una ArrayList le brinda esa flexibilidad y la capacidad de insertar y eliminar nodos según sea necesario. Aprender a convertir una matriz de Java en una lista mejorará la eficiencia general de sus programas y también mejorará su tiempo de ejecución.
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION