Dominando ArrayList en Java: Operaciones, métodos y mejores prácticas
Clase ArrayList en Java
Descubre todo el poder de ArrayList de Java: crea, manipula e itera con ejemplos claros y del mundo real.
La clase ArrayList, parte del Framework de Colecciones de Java, implementa la interfaz List y ofrece una estructura de datos de array redimensionable. A diferencia de los arrays estáticos, un ArrayList ajusta automáticamente su capacidad cuando se añaden o eliminan elementos, convirtiéndolo en un array dinámico.

ArrayList vs. Array
Los arrays tradicionales requieren un tamaño fijo en la declaración, lo que limita la flexibilidad. ArrayList supera esta limitación redimensionando bajo demanda, permitiendo manejo eficiente de datos dinámicos.
Creando un ArrayList
Importa la clase antes de usar:
import java.util.ArrayList;
Instancia con el tipo de elemento deseado:
// Tipo Integer ArrayList ArrayList<Integer> listaInt = new ArrayList<>(); // Tipo String ArrayList ArrayList<String> listaStr = new ArrayList<>();
Nota: Usa clases wrapper (ej. Integer para int) porque los genéricos no soportan tipos primitivos.
Ejemplo: Crear un ArrayList
import java.util.ArrayList; class Main { public static void main(String[] args){ ArrayList<String> lenguajes = new ArrayList<>(); lenguajes.add("Java"); lenguajes.add("Python"); lenguajes.add("Swift"); System.out.println("ArrayList: " + lenguajes); } }
Salida
ArrayList: [Java, Python, Swift]
Operaciones básicas en ArrayList
Operaciones núcleo incluyen agregar, acceder, modificar y eliminar elementos. A continuación snippets concisos para cada una.
- Agregar elementos
- Acceder elementos
- Cambiar elementos
- Eliminar elementos
1. Agregando elementos
Agregar un solo elemento al final:
ArrayList<String> lenguajes = new ArrayList<>(); lenguajes.add("Java"); lenguajes.add("C"); lenguajes.add("Python"); System.out.println("ArrayList: " + lenguajes);
Salida
ArrayList: [Java, C, Python]
Insertar en un índice específico:
lenguajes.add(1, "JavaScript"); lenguajes.add(3, "C++");
Agregar todos los elementos de una colección:
import java.util.ArrayList; import java.util.HashSet; class Main { public static void main(String[] args) { HashSet<String> vocales = new HashSet<>(); vocales.add("a"); vocales.add("e"); vocales.add("i"); ArrayList<String> alfabeto = new ArrayList<>(); alfabeto.addAll(vocales); System.out.println("ArrayList: " + alfabeto); } }
Salida
ArrayList: [a, e, i]
2. Accediendo a elementos
Recuperar por índice:
ArrayList<String> animales = new ArrayList<>(); animales.add("Gato"); animales.add("Perro"); animales.add("Vaca"); String str = animales.get(1); System.out.print("Elemento en índice 1: " + str);
Salida
Elemento en índice 1: Perro
Iterar con un Iterator si se necesita.
3. Modificando elementos
Reemplazar un elemento existente:
ArrayList<String> lenguajes = new ArrayList<>(); lenguajes.add("Java"); lenguajes.add("Kotlin"); lenguajes.add("C++"); lenguajes.set(2, "JavaScript"); System.out.println("ArrayList modificado: " + lenguajes);
Salida
ArrayList modificado: [Java, Kotlin, JavaScript]
4. Eliminando elementos
Por índice:
ArrayList<String> animales = new ArrayList<>(); animales.add("Perro"); animales.add("Gato"); animales.add("Caballo"); String removido = animales.remove(2); System.out.println("ArrayList actualizado: " + animales); System.out.println("Elemento removido: " + removido);
Salida
ArrayList actualizado: [Perro, Gato] Elemento removido: Caballo
Limpiar todos los elementos con clear() o remover un rango con removeAll().
Métodos comunes de ArrayList
Más allá de operaciones CRUD básicas, los siguientes métodos se usan frecuentemente:
| Método | Descripción |
|---|---|
| size() | Retorna el número de elementos. |
| sort() | Ordena la lista. |
| clone() | Crea una copia superficial. |
| contains() | Verifica presencia de un elemento. |
| ensureCapacity() | Preasigna espacio. |
| isEmpty() | Verifica si la lista está vacía. |
| indexOf() | Encuentra índice de primera ocurrencia. |
Para lista completa, refiérete a la API oficial de ArrayList.
Iterando con for‑each
ArrayList<String> animales = new ArrayList<>(); animales.add("Vaca"); animales.add("Gato"); animales.add("Perro"); for (String animal : animales) { System.out.print(animal + ", "); }
Salida
Vaca, Gato, Perro,
Preguntas frecuentes
¿Cuál es la diferencia entre Java ArrayList y LinkedList?
| ArrayList | LinkedList |
|---|---|
Implementa interfaz List | Implementa List, Queue y Deque |
| Bloque de memoria contiguo único | Nodos con referencias next/prev |
| Acceso aleatorio O(1) | Acceso secuencial O(n) |
| Redimensiona dinámicamente | Redimensiona dinámicamente |
¿Cómo convertir un ArrayList a array?
String[] arr = new String[lenguajes.size()]; lenguajes.toArray(arr);
¿Cómo convertir un array a ArrayList?
ArrayList<String> lista = new ArrayList<>(Arrays.asList(arr));
¿Cómo crear e inicializar un ArrayList en una línea?
ArrayList<String> lista = new ArrayList<>(Arrays.asList("Java", "Python", "C"));
¿Cómo convertir un ArrayList a String?
String str = lenguajes.toString();
¿Cómo crear un ArrayList usando la interfaz List?
List<String> lista = new ArrayList<>();
Java
- Palabra clave final en Java: Variables, métodos y clases
- Operador instanceof en Java: Guía completa
- Entendiendo las clases anidadas estáticas en Java: Uso, diferencias y ejemplos
- Dominando las clases internas anónimas en Java: Definición, sintaxis y ejemplos prácticos
- Patrón Singleton en Java explicado: Cómo implementarlo y usarlo de forma segura
- Dominando la Reflexión en Java: Inspeccionando clases, métodos y campos en tiempo de ejecución
- Entendiendo Java Vector: Uso, Características y Comparación con ArrayList
- Dominando los Algoritmos de Colecciones de Java: Ordenación, Mezcla y Más
- Dominando ObjectOutputStream de Java: Serialización, Métodos y Ejemplos Prácticos
- Dominando Java Generics: Construyendo Código Reutilizable y Type-Safe
- Dominando las operaciones de archivos en Java con java.io: creación, lectura, escritura y eliminación