Interfaz List en Java: Visión general, implementaciones y métodos clave
Interfaz List en Java
Explora la interfaz List de Java —su propósito, implementaciones comunes, métodos esenciales y cómo difiere de Set.
En Java, la interfaz List representa una colección ordenada, basada en índices, que soporta duplicados y acceso aleatorio. Extiende Collection y es parte del Framework de Colecciones.
Implementaciones clave de List
Como List es una interfaz, instancias clases concretas para usar su funcionalidad:
- ArrayList – respaldado por un array dinámico, ofrece acceso aleatorio rápido.
- LinkedList – implementada como lista doblemente enlazada, destaca en inserciones/eliminaciones.
- Vector – lista sincronizada legacy, rara vez usada en código moderno.
- Stack – subclase de Vector que sigue semántica LIFO.

Estas clases están definidas dentro del paquete java.util.
Usando List en código
Primero importa java.util.List (y la clase concreta que desees usar).
// Implementación ArrayList List<String> arrayList = new ArrayList<>(); // Implementación LinkedList List<String> linkedList = new LinkedList<>();
Las variables arrayList y linkedList ahora exponen todos los métodos de List.
Métodos esenciales de List
Todos los métodos listados abajo son heredados de Collection y están disponibles en toda implementación de List.
add(E e)– agregar un elemento al final.addAll(Collection<? extends E> c)– adición en lote.get(int index)– recuperar por índice.iterator()– recorrido secuencial.set(int index, E element)– reemplazar elemento.remove(Object o)– eliminar por valor.removeAll(Collection<? extends E> c)– eliminación en lote.clear()– vaciar la lista.size()– número de elementos.toArray()– convertir a array.contains(Object o)– probar pertenencia.
ArrayList en la práctica
import java.util.List; import java.util.ArrayList; public class ArrayListDemo { public static void main(String[] args) { List<Integer> numeros = new ArrayList<>(); numeros.add(1); numeros.add(2); numeros.add(3); System.out.println("Lista: " + numeros); int tercero = numeros.get(2); System.out.println("Elemento accedido: " + tercero); int removido = numeros.remove(1); System.out.println("Elemento removido: " + removido); } }
Salida
Lista: [1, 2, 3] Elemento accedido: 3 Elemento removido: 2
Para mayor profundidad sobre ArrayList, consulta la documentación oficial de Oracle.
LinkedList en la práctica
import java.util.List; import java.util.LinkedList; public class LinkedListDemo { public static void main(String[] args) { List<Integer> numeros = new LinkedList<>(); numeros.add(1); numeros.add(2); numeros.add(3); System.out.println("Lista: " + numeros); int tercero = numeros.get(2); System.out.println("Elemento accedido: " + tercero); int indice = numeros.indexOf(2); System.out.println("Posición de 2 es " + indice); int removido = numeros.remove(1); System.out.println("Elemento removido: " + removido); } }
Salida
Lista: [1, 2, 3] Elemento accedido: 3 Posición de 2 es 1 Elemento removido: 2
Detalles adicionales sobre LinkedList disponibles en los Tutoriales de Java.
List vs. Set
Ambas interfaces extienden Collection pero difieren en aspectos clave:
- Las listas preservan orden de inserción y permiten duplicados.
- Los sets enforzan unicidad y típicamente no tienen orden definido (a menos que se use
SortedSet).
Elegir entre ellas depende de si el orden y duplicados importan para tu caso de uso.
Continúa explorando implementaciones concretas en próximos tutoriales.
Java
- Dominar Operadores en Java: Tipos, Sintaxis y Ejemplos Prácticos
- Comentarios en Java: Tipos, Uso y Mejores Prácticas
- Dominar el Bucle for Mejorado en Java: Sintaxis, Ejemplos y Mejores Prácticas
- Dominar Strings en Java: Creación, Métodos y Mejores Prácticas
- Dominando interfaces en Java: Conceptos, implementación y mejores prácticas
- Dominando Try‑with‑Resources en Java: Gestión automática de recursos explicada
- Anotaciones en Java explicadas: Tipos, ubicación y ejemplos prácticos
- Dominando los Algoritmos de Colecciones de Java: Ordenación, Mezcla y Más
- Dominando Autoboxing y Unboxing en Java: Ejemplos Prácticos y Mejores Prácticas
- Generar números aleatorios en Java: Guía práctica con Random y Math.random
- Java 10: 70+ Nuevas APIs y Características Explicadas