Koji je minimalni broj elemenata potreban za inicijalizaciju HashMap bez automatskog proširenja?
sobes.tech АИ
Одговор од АИ
HashMap u Java-u ima početni kapacitet (capacity) i faktor opterećenja (load factor), koji su prema zadanim postavkama 16 i 0,75. Automatsko proširenje događa se kada broj elemenata premaši kapacitet pomnožen s faktorom opterećenja.
Da biste izbjegli automatsko proširenje pri inicijalizaciji, potrebno je postaviti kapacitet tako da može sadržavati potrebni broj elemenata bez prelaska praga.
Minimalni broj elemenata za inicijalizaciju HashMap bez proširenja je maksimalni mogući broj koji ne prelazi prag = kapacitet * faktor opterećenja.
Na primjer, s kapacitetom=16 i faktorom opterećenja=0,75, prag je 12. To znači da dodavanjem do 12 elemenata, proširenje neće biti potrebno.
Ako želite inicijalizirati HashMap s određenim brojem elemenata n bez proširenja, postavite initialCapacity >= n / loadFactor.
Primjer:
int expectedElements = 10;
float loadFactor = 0.75f;
int initialCapacity = (int) Math.ceil(expectedElements / loadFactor);
HashMap<String, String> map = new HashMap<>(initialCapacity, loadFactor);