ArrayLists
ArrayLists
En Java, además de los Arrays convencionales, existe una clase llamada ArrayList
que es parte de la colección de clases java.util
. Los ArrayList
son una implementación dinámica de los Arrays, lo que significa que pueden cambiar de tamaño en tiempo de ejecución.
A diferencia de los Arrays, los ArrayList
no tienen un tamaño fijo y pueden crecer o encogerse según sea necesario. Esto los hace más flexibles y fáciles de usar en comparación con los Arrays tradicionales.
Declaración e Inicialización
Para declarar un ArrayList
, primero debemos importar la clase java.util.ArrayList
:
1import java.util.ArrayList;
Luego, podemos declarar e inicializar un ArrayList
de la siguiente manera:
1ArrayList<TipoDeDato> nombreLista = new ArrayList<>();
Aquí, TipoDeDato
es el tipo de datos que almacenará el ArrayList
. Por ejemplo, para crear un ArrayList
de cadenas de texto:
1ArrayList<String> nombres = new ArrayList<>();
También podemos inicializar un ArrayList
con elementos iniciales:
1ArrayList<Integer> numeros = new ArrayList<>(Arrays.asList(1, 1, 2, 3, 5, 8));
En este caso, inicializamos un ArrayList
de números enteros con los valores 1, 1, 2, 3, 5, 8.
Agregar Elementos
Para agregar elementos a un ArrayList
, podemos usar el método add()
:
1ArrayList<String> nombres = new ArrayList<>();2nombres.add("Juan");3nombres.add("María");4nombres.add("Pedro");
Después de estas operaciones, el ArrayList
nombres
contendrá los elementos “Juan”, “María” y “Pedro”.
También podemos agregar elementos en una posición específica utilizando el método add(int index, Element)
:
1ArrayList<String> nombres = new ArrayList<>(Arrays.asList("Juan", "María", "Pedro"));2nombres.add(1, "Ana");
Ahora, el ArrayList
nombres
contendrá los elementos “Juan”, “Ana”, “María” y “Pedro”.
Acceder y Modificar Elementos
Podemos acceder a los elementos de un ArrayList
utilizando el método get(int index)
:
1ArrayList<String> nombres = new ArrayList<>(Arrays.asList("Juan", "María", "Pedro"));2System.out.println(nombres.get(1)); // Muestra "María"
Para modificar un elemento, podemos usar el método set(int index, Element)
:
1ArrayList<String> nombres = new ArrayList<>(Arrays.asList("Juan", "María", "Pedro"));2nombres.set(1, "Ana");3System.out.println(nombres); // Muestra [Juan, Ana, Pedro]
Eliminar Elementos
Podemos eliminar elementos de un ArrayList
de varias maneras:
Eliminar un elemento en una posición específica usando remove(int index)
:
1ArrayList<String> nombres = new ArrayList<>(Arrays.asList("Juan", "María", "Pedro"));2nombres.remove(1); // Elimina "María"3System.out.println(nombres); // Muestra [Juan, Pedro]
Al utilizar un índice, el código retorna el elemento eliminado, de haberlo encontrado. Arroja un error si damos un índice que supere la longitud del ArrayList
.
1ArrayList<String> nombres = new ArrayList<>(Arrays.asList("Juan", "María", "Pedro"));2String eliminado = nombres.remove(1); // Elimina "María"3System.out.println(eliminado); // Muestra "María"
Eliminar un elemento específico usando remove(Object o)
:
1ArrayList<String> nombres = new ArrayList<>(Arrays.asList("Juan", "María", "Pedro"));2nombres.remove("María");3System.out.println(nombres); // Muestra [Juan, Pedro]
Al utilizar un objeto para eliminar, el código retorna un valor booleano que indica si el elemento fue eliminado o no.
1ArrayList<String> nombres = new ArrayList<>(Arrays.asList("Juan", "María", "Pedro"));2boolean eliminado = nombres.remove("María");3System.out.println(eliminado); // Muestra true4boolean eliminado2 = nombres.remove("Ana");5System.out.println(eliminado2); // Muestra false
Eliminar todos los elementos usando clear()
:
1ArrayList<String> nombres = new ArrayList<>(Arrays.asList("Juan", "María", "Pedro"));2nombres.clear();3System.out.println(nombres); // Muestra []
Recorrer un ArrayList
Podemos recorrer los elementos de un ArrayList
utilizando un ciclo for
tradicional:
1ArrayList<String> nombres = new ArrayList<>(Arrays.asList("Juan", "María", "Pedro"));2for (int i = 0; i < nombres.size(); i++) {3 System.out.println(nombres.get(i));4}
También podemos usar un ciclo for-each
:
1ArrayList<String> nombres = new ArrayList<>(Arrays.asList("Juan", "María", "Pedro"));2for (String nombre : nombres) {3 System.out.println(nombre);4}
Otras Operaciones con ArrayList
Los ArrayList
proporcionan muchos otros métodos útiles, como:
size()
: devuelve el número de elementos en elArrayList
. Usado anteriormente para recorrer elArrayList
.contains(Object o)
: devuelvetrue
si elArrayList
contiene el elemento especificado.indexOf(Object o)
: devuelve el índice de la primera ocurrencia del elemento especificado en elArrayList
, o-1
si no se encuentra.isEmpty()
: devuelvetrue
si elArrayList
no contiene elementos.
Este es un ejemplo que ilustra el uso de algunos de estos métodos:
1ArrayList<String> nombres = new ArrayList<>(Arrays.asList("Juan", "María", "Pedro"));2System.out.println(nombres.size()); // Muestra 33System.out.println(nombres.contains("Juan")); // Muestra true4System.out.println(nombres.indexOf("María")); // Muestra 15System.out.println(nombres.isEmpty()); // Muestra false