Repaso
English
Java CoreIntermedioJV-37

Explica cómo funciona un HashMap por dentro.

Respuesta

  • Mantiene un array de buckets. En put(key, value) calcula key.hashCode(), reparte los bits y elige index = hash % arraySize.
  • Si el bucket está vacío, guarda la entrada. Si no (una colisión), las entradas se encadenan en una linked list; desde Java 8, una cadena larga (8+) se convierte en un árbol balanceado para buscar más rápido.
  • get(key): encuentra el bucket por el hash y usa equals para hallar la clave exacta. Por eso equals y hashCode deben ser coherentes.
  • Cuando el map supera el 75% de ocupación (load factor 0.75), el array se duplica y las entradas se redistribuyen (rehash).
  • get y put en O(1) de media, O(log n) en el peor caso. No es thread-safe; admite una clave null.

Términos clave

Practica esta pregunta en Repaso