Collections in Java: List, Set, Map and Comparator

ArrayList, LinkedList, HashMap, HashSet and how to sort with Comparator, with labs where you add, search and sort elements live.

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: the list you'll use most

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: key → value pairs

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: no duplicates

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

Sorting with Comparator

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

Check what you've learned