1. ArrayList
clase
Hoy exploraremos la ArrayList
clase. Esta es la primera de varias clases conocidas como colecciones . En Java, las colecciones son un tema tan amplio y útil que se les dedica una búsqueda completa de CodeGym.
Para comprender completamente cómo se estructuran las colecciones y todos sus matices, primero debe aprender programación orientada a objetos, interfaces, herencia, los conceptos básicos de subprocesos múltiples y mucho más.
Así que hoy nos familiarizaremos con el tipo de colección más simple. Pero a un nivel lo suficientemente profundo como para que entiendas cómo usarlo y cómo funciona. Ahora bien, conoce la ArrayList
colección .
la historia de fondo
Comenzaré con un poco de historia. A los programadores realmente no les gustó un aspecto de las matrices: el hecho de que su tamaño no se puede cambiar. ¿Qué sucede si necesita almacenar tres elementos más en una matriz, pero solo hay una celda vacía?
La única solución a las limitaciones de espacio de una matriz era crear una matriz muy grande para acomodar todos los elementos que pudiera necesitar almacenar. Pero esto era por lo general una pérdida de memoria. Si una matriz generalmente contenía dos o tres elementos, pero había incluso una pequeña posibilidad de que necesitara almacenar 100 de ellos, entonces era necesario crear una matriz con capacidad para almacenar 100.
Entonces, ¿qué idearon los programadores? Escribieron la ArrayList
clase, que hizo el mismo trabajo que la Array
clase, pero fue redimensionable.
clase ArrayList
El nombre de la ArrayList
clase se forma a partir de dos palabras: Array + List. Array
es una matriz y List
es una lista.
Cada ArrayList
objeto contiene una matriz ordinaria de elementos. Cuando lee elementos de un ArrayList
, el objeto los recupera de su matriz interna. Cuando escribe elementos, los escribe en la matriz interna.
La clase ArrayList carece de todas las desventajas que tienen los arreglos. Sabe cómo:
- Almacenar elementos de un tipo específico
- Redimensionar dinámicamente la lista
- Agregar elementos al final de la lista
- Insertar elementos al principio o en medio de la lista
- Eliminar elementos de cualquier parte de la lista
Para obtener más detalles, consulte a continuación:
2. Crear un ArrayList
objeto
Para crear un ArrayList
objeto, debe escribir un código como este:
ArrayList<TypeParameter> name = new ArrayList<TypeParameter>();
Donde ArrayList
es el tipo/clase de colección, TypeParameter
es el tipo de los elementos almacenados en la ArrayList
colección y name
es el nombre de una ArrayList<TypeParameter>
variable.
La name
variable tiene un tipo genérico. Consta de dos tipos: primero se indica el tipo de la colección, y luego se utilizan paréntesis angulares para indicar el tipo de los elementos almacenados en la colección.
Ejemplos:
Código | Descripción |
---|---|
|
lista de enteros |
|
Lista de cadenas |
|
lista de numeros reales |
A diferencia de las matrices, las colecciones no pueden almacenar tipos primitivos, solo tipos de referencia . Entonces, si necesita una colección de int
s, use la Integer
clase contenedora en su lugar.
3. Operaciones con unArrayList
Inicialmente, la longitud de la lista recién creada es cero, ya que contiene 0 elementos. Si agrega un elemento a la lista, su longitud aumenta en 1. Si elimina el elemento agregado, la longitud vuelve a disminuir a cero.
La siguiente tabla puede enseñarle más sobre los métodos de la ArrayList
clase:
Métodos | Descripción |
---|---|
|
Agrega el elemento pasado a la lista. |
|
Agrega un elemento a una ubicación específica en la lista. |
|
Devuelve el elemento cuyo índice esindex |
|
Se asigna value al elemento cuyo índice esindex |
|
Elimina el elemento cuyo índice es index . Devuelve el elemento eliminado. |
|
Elimina el elemento que pasa al método. Si hay más de un elemento de este tipo, se eliminará el primero. |
|
Borra la lista, es decir, elimina todos los elementos de la lista. |
|
Comprueba si la lista contiene value . |
|
Comprueba si la lista está vacía o no. En otras palabras, si la longitud de la lista es cero. |
|
Devuelve el tamaño de la lista, es decir, el número de elementos de la lista. |
|
Devuelve una matriz que contiene los elementos de la lista. Debe pasar la matriz al método. |
Estos métodos le permiten hacer casi cualquier cosa que desee con la lista: intercambiar elementos, agregar elementos y eliminar elementos. Puede borrar la lista con un solo comando o incluso convertir la lista en una matriz.
4. Comparación de ArrayList
yArray
No creo que podamos evitar la comparación ArrayList
y una matriz.
Solo hay 4 acciones que puede realizar con matrices:
- Crear una matriz
- Obtener un elemento por índice
- Establecer un elemento por índice
- Obtener la longitud de la matriz
Aquí están estas operaciones que se aplican a una matriz y un ArrayList
:
Formación | Lista de arreglo |
---|---|
|
|
|
|
|
|
|
|
Comparemos cómo ArrayList
funciona an versus cómo funciona una matriz. Por ejemplo, implementemos esta tarea: "leer 10 cadenas del teclado y mostrarlas en la pantalla en orden inverso"
Usando matriz | Usando ArrayList |
---|---|
|
|
La analogía es clara. Todo es de alguna manera más corto y más claro para las matrices. Pero ArrayList
tampoco es difícil: para obtener un elemento, usamos el get()
método; para cambiar un elemento, el set()
método; para obtener la longitud de la lista, el size()
método.
Entonces, ¿por qué los programadores usan la ArrayList
clase?
El punto central, por supuesto, son todos los otros métodos que las matrices ordinarias no tienen:
- Agregar un elemento a la lista
- Agregar un elemento al medio de la lista
- Buscar un elemento en la lista
- Eliminar un elemento de una lista