Sobes.tech
Junior — Middle

¿Cuál es la cantidad mínima de elementos necesarios para inicializar un HashMap sin expansión automática?

sobes.tech AI

Respuesta de la IA

HashMap en Java tiene una capacidad inicial y un factor de carga, que por defecto son 16 y 0.75 respectivamente. La expansión automática ocurre cuando el número de elementos supera la capacidad multiplicada por el factor de carga.

Para evitar la expansión automática al inicializar, es necesario establecer una capacidad que pueda contener la cantidad necesaria de elementos sin superar el umbral.

La cantidad mínima de elementos para inicializar un HashMap sin expansión es la cantidad máxima posible que no supere el umbral = capacidad * factor de carga.

Por ejemplo, con capacidad=16 y factor de carga=0.75, el umbral es 12. Esto significa que al agregar hasta 12 elementos, no habrá expansión.

Si deseas inicializar un HashMap con una cantidad específica de elementos n sin expansión, establece initialCapacity >= n / loadFactor.

Ejemplo:

int expectedElements = 10;
float loadFactor = 0.75f;
int initialCapacity = (int) Math.ceil(expectedElements / loadFactor);
HashMap<String, String> map = new HashMap<>(initialCapacity, loadFactor);