Colecciones en Java: List, Set, Map y Comparator

ArrayList, LinkedList, HashMap, HashSet y cómo ordenar con Comparator, con laboratorios donde añades, buscas y ordenas elementos en vivo.

Un array tiene tamaño fijo. Las colecciones del paquete java.util crecen y encogen solas y traen métodos para buscar, ordenar y recorrer. Las tres familias: List (orden, permite repetidos), Set (sin repetidos) y Map (pares clave→valor).

ArrayList: la lista que más usarás

List<String> frutas = new ArrayList<>();
frutas.add("manzana");
frutas.add("pera");
frutas.get(0);          // "manzana"
frutas.size();          // 2
frutas.remove("pera");
frutas.contains("uva"); // false

ArrayList vs LinkedList

Ambas implementan List. La diferencia está en cómo guardan los datos por dentro y, por tanto, en qué operaciones son rápidas.

HashMap: pares clave → valor

Map<String, Integer> edades = new HashMap<>();
edades.put("Ana", 30);
edades.put("Luis", 25);
edades.get("Ana");            // 30
edades.getOrDefault("Eva", 0); // 0
edades.containsKey("Luis");   // true

HashSet: sin duplicados

Un Set ignora los elementos repetidos. Truco habitual para quitar duplicados de una lista.

Ordenar con Comparator

Collections.sort(lista) usa el orden «natural» (Comparable). Para otro criterio le pasas un Comparator: lista.sort(Comparator.comparing(Persona::getEdad)).

Comprueba lo aprendido