Qual é o número mínimo de elementos necessário para inicializar um HashMap sem expansão automática?
sobes.tech IA
Resposta da IA
O HashMap em Java tem uma capacidade inicial e um fator de carga, que por padrão são 16 e 0,75 respetivamente. A expansão automática ocorre quando o número de elementos excede a capacidade multiplicada pelo fator de carga.
Para evitar a expansão automática na inicialização, deve definir uma capacidade que possa conter a quantidade necessária de elementos sem ultrapassar o limite.
A quantidade mínima de elementos para inicializar um HashMap sem expansão é a quantidade máxima possível que não ultrapassa o limiar = capacidade * fator de carga.
Por exemplo, com capacidade=16 e fator de carga=0,75, o limiar é 12. Isto significa que, ao adicionar até 12 elementos, não ocorrerá expansão.
Se desejar inicializar um HashMap com uma quantidade específica de elementos n sem expansão, defina initialCapacity >= n / loadFactor.
Exemplo:
int expectedElements = 10;
float loadFactor = 0.75f;
int initialCapacity = (int) Math.ceil(expectedElements / loadFactor);
HashMap<String, String> map = new HashMap<>(initialCapacity, loadFactor);