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 falseEliminar 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): devuelvetruesi elArrayListcontiene el elemento especificado.indexOf(Object o): devuelve el índice de la primera ocurrencia del elemento especificado en elArrayList, o-1si no se encuentra.isEmpty(): devuelvetruesi elArrayListno 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