Care este numărul minim de elemente necesare pentru inițializarea unui HashMap fără extindere automată?
sobes.tech AI
Răspuns de la AI
HashMap în Java are o capacitate inițială și un factor de încărcare, respectiv 16 și 0,75 implicit. Extinderea automată are loc atunci când numărul de elemente depășește capacitatea înmulțită cu factorul de încărcare.
Pentru a evita extinderea automată la inițializare, trebuie să setați o capacitate astfel încât să poată conține numărul necesar de elemente fără a depăși pragul.
Numărul minim de elemente pentru a inițializa un HashMap fără extindere este numărul maxim posibil care nu depășește pragul = capacitate * factor de încărcare.
De exemplu, cu capacitatea=16 și factorul de încărcare=0,75, pragul este 12. Asta înseamnă că, până la adăugarea a 12 elemente, nu va avea loc extindere.
Dacă doriți să inițializați un HashMap cu un număr specific de elemente n fără extindere, setați initialCapacity >= n / loadFactor.
Exemplu:
int expectedElements = 10;
float loadFactor = 0.75f;
int initialCapacity = (int) Math.ceil(expectedElements / loadFactor);
HashMap<String, String> map = new HashMap<>(initialCapacity, loadFactor);