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.
Practica esta pregunta en Repaso