Saltearse al contenido

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:

1
import java.util.ArrayList;

Luego, podemos declarar e inicializar un ArrayList de la siguiente manera:

1
ArrayList<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:

1
ArrayList<String> nombres = new ArrayList<>();

También podemos inicializar un ArrayList con elementos iniciales:

1
ArrayList<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():

1
ArrayList<String> nombres = new ArrayList<>();
2
nombres.add("Juan");
3
nombres.add("María");
4
nombres.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):

1
ArrayList<String> nombres = new ArrayList<>(Arrays.asList("Juan", "María", "Pedro"));
2
nombres.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):

1
ArrayList<String> nombres = new ArrayList<>(Arrays.asList("Juan", "María", "Pedro"));
2
System.out.println(nombres.get(1)); // Muestra "María"

Para modificar un elemento, podemos usar el método set(int index, Element):

1
ArrayList<String> nombres = new ArrayList<>(Arrays.asList("Juan", "María", "Pedro"));
2
nombres.set(1, "Ana");
3
System.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):

1
ArrayList<String> nombres = new ArrayList<>(Arrays.asList("Juan", "María", "Pedro"));
2
nombres.remove(1); // Elimina "María"
3
System.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.

1
ArrayList<String> nombres = new ArrayList<>(Arrays.asList("Juan", "María", "Pedro"));
2
String eliminado = nombres.remove(1); // Elimina "María"
3
System.out.println(eliminado); // Muestra "María"

Eliminar un elemento específico usando remove(Object o):

1
ArrayList<String> nombres = new ArrayList<>(Arrays.asList("Juan", "María", "Pedro"));
2
nombres.remove("María");
3
System.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.

1
ArrayList<String> nombres = new ArrayList<>(Arrays.asList("Juan", "María", "Pedro"));
2
boolean eliminado = nombres.remove("María");
3
System.out.println(eliminado); // Muestra true
4
boolean eliminado2 = nombres.remove("Ana");
5
System.out.println(eliminado2); // Muestra false

Eliminar todos los elementos usando clear():

1
ArrayList<String> nombres = new ArrayList<>(Arrays.asList("Juan", "María", "Pedro"));
2
nombres.clear();
3
System.out.println(nombres); // Muestra []

Recorrer un ArrayList

Podemos recorrer los elementos de un ArrayList utilizando un ciclo for tradicional:

1
ArrayList<String> nombres = new ArrayList<>(Arrays.asList("Juan", "María", "Pedro"));
2
for (int i = 0; i < nombres.size(); i++) {
3
System.out.println(nombres.get(i));
4
}

También podemos usar un ciclo for-each:

1
ArrayList<String> nombres = new ArrayList<>(Arrays.asList("Juan", "María", "Pedro"));
2
for (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 el ArrayList. Usado anteriormente para recorrer el ArrayList.
  • contains(Object o): devuelve true si el ArrayList contiene el elemento especificado.
  • indexOf(Object o): devuelve el índice de la primera ocurrencia del elemento especificado en el ArrayList, o -1 si no se encuentra.
  • isEmpty(): devuelve true si el ArrayList no contiene elementos.

Este es un ejemplo que ilustra el uso de algunos de estos métodos:

1
ArrayList<String> nombres = new ArrayList<>(Arrays.asList("Juan", "María", "Pedro"));
2
System.out.println(nombres.size()); // Muestra 3
3
System.out.println(nombres.contains("Juan")); // Muestra true
4
System.out.println(nombres.indexOf("María")); // Muestra 1
5
System.out.println(nombres.isEmpty()); // Muestra false