AnyCompiler

El Collections Framework

HashMap<K, V> almacena pares clave-valor. put(key, value) inserta o actualiza una entrada, y get(key) la recupera — un HashMap no da ninguna garantía sobre el orden de iteración, así que el código que depende de un orden particular necesita una estructura distinta.

import java.util.HashMap;

public class Main {
    public static void main(String[] args) {
        HashMap<String, Integer> ages = new HashMap<>();
        ages.put("Alice", 30);
        ages.put("Bob", 25);
        System.out.println(ages.get("Alice"));
        System.out.println(ages.get("Bob"));
    }
}
Output
30
25

HashSet

HashSet almacena valores únicos sin duplicados — agregar un valor que ya está presente es simplemente un no-op, por eso numbers.size() abajo es 3, no 4, aunque add() se llamó cuatro veces.

import java.util.HashSet;

public class Main {
    public static void main(String[] args) {
        HashSet<Integer> numbers = new HashSet<>();
        numbers.add(5);
        numbers.add(3);
        numbers.add(5);
        numbers.add(1);
        System.out.println(numbers.size());
        System.out.println(numbers.contains(3));
    }
}
Output
3
true

Siguiente: lambdas y streams — la forma moderna y de estilo funcional de Java para escribir comportamiento inline y transformar colecciones.

Practice exercise

Crea un HashMap<String, Integer> llamado ages. Pon "Alice" -> 30 y "Bob" -> 25. Imprime ages.get("Alice").