Saltar a contenido

LinkedHashMap

LinkedHashMap combina HashMap con una lista enlazada que mantiene el orden de inserción de las entradas.

Características

Aspecto Detalle
Estructura Hash table + Doubly linked list
Orden Orden de inserción (o acceso con accessOrder=true)
Claves únicas No permite duplicados
Operaciones get, put: O(1)
Null Permite clave null y valor null

Cuándo usar

  • Necesitas orden de inserción
  • Implementar LRU Cache
  • Iteración predecible sobre entradas

Ejemplo: LRU Cache

class LRUCache<K, V> extends LinkedHashMap<K, V> {
    private final int capacidad;

    public LRUCache(int capacidad) {
        super(capacidad, 0.75f, true); // accessOrder = true
        this.capacidad = capacidad;
    }

    @Override
    protected boolean removeEldestEntry(Map.Entry<K, V> eldest) {
        return size() > capacidad;
    }
}

// Uso
LRUCache<String, String> cache = new LRUCache<>(3);
cache.put("A", "valorA");
cache.put("B", "valorB");
cache.put("C", "valorC");
cache.get("A"); // A se marca como reciente
cache.put("D", "valorD"); // B se elimina

Escenarios BDD

Tests para: - Orden de inserción - Implementación de caché LRU - Iteración predecible