Aký je minimálny počet prvkov potrebných na inicializáciu HashMap bez automatického rozšírenia?
sobes.tech AI
Odpoveď od AI
HashMap v Jave má počiatočnú kapacitu (capacity) a faktor zaťaženia (load factor), ktoré sú predvolene 16 a 0,75. Automatické rozšírenie nastáva, keď počet prvkov presiahne kapacitu vynásobenú faktorom zaťaženia.
Aby ste zabránili automatickému rozšíreniu pri inicializácii, je potrebné nastaviť kapacitu tak, aby mohla obsahovať požadovaný počet prvkov bez prekročenia prahu.
Minimálny počet prvkov pre inicializáciu HashMap bez rozšírenia je maximálny možný počet, ktorý nepresahuje threshold = kapacita * faktor zaťaženia.
Napríklad pri kapacite=16 a faktore zaťaženia=0,75 je threshold 12. To znamená, že pri pridávaní do 12 prvkov nedôjde k rozšíreniu.
Ak chcete inicializovať HashMap s určitým počtom prvkov n bez rozšírenia, nastavte initialCapacity >= n / loadFactor.
Príklad:
int expectedElements = 10;
float loadFactor = 0.75f;
int initialCapacity = (int) Math.ceil(expectedElements / loadFactor);
HashMap<String, String> map = new HashMap<>(initialCapacity, loadFactor);