¿Por qué se implementa el tamaño tal y como está?

Tengo varias preguntas sobre la reconstrucción.HashMaps Al agregar un nuevo par clave-valores. Haré preguntas basadas en estos hechos (son ciertas para Oracle JVM, no estoy seguro si son correctas para otras JVM):

Redimensionar reconstruccionesHashMap para tener una matriz de tabla interna más grande cada vez que crezca HashMap más que el umbral (threshold = loadFactor * numberOfEntries). No importa en qué categoría se coloque la nueva entrada creada: el mapa seguirá creciendo. Incluso si todas las entradas entran en un cubo (es decir, sus claves)hashCode() devolver el mismo número).HashMap no se encoge cuando se eliminan los datos. Incluso si todas las claves se eliminan deHashMap, el tamaño interno de su tabla no cambia.

Ahora las preguntas:

¿Son correctos estos hechos?

Si lo son, entonces:

¿Por qué redimensionar implementado de esta manera? ¿Es la intención hacer crecer la mesa interna incluso cuando obviamente no es necesario? O un error?¿Por qué no se encoge?

Respuestas a la pregunta(1)

Su respuesta a la pregunta