Cik minimāli elementi ir nepieciešami HashMap inicializēšanai bez automātiskas paplašināšanas?
sobes.tech AI
Atbilde no AI
Java HashMap ir sākotnējais ietilpība (capacity) un slodzes koeficients (load factor), kas pēc noklusējuma ir attiecīgi 16 un 0,75. Automātiskā paplašināšanās notiek, kad elementu skaits pārsniedz capacity * load factor.
Lai izvairītos no automātiskas paplašināšanās inicializācijas laikā, ir jānorāda tāda capacity, kas spēj uzņemt nepieciešamo elementu skaitu, nepārsniedzot slieksni.
Minimālais elementu skaits HashMap inicializācijai bez paplašināšanās ir maksimālais skaits, kas nepārsniedz threshold = capacity * load factor.
Piemēram, ar capacity=16 un load factor=0,75, threshold ir 12. Tas nozīmē, ka līdz 12 elementiem pievienošanas laikā paplašināšanās nenotiks.
Ja vēlaties inicializēt HashMap ar noteiktu elementu skaitu n bez paplašināšanās, iestatiet initialCapacity >= n / loadFactor.
Piemērs:
int expectedElements = 10;
float loadFactor = 0.75f;
int initialCapacity = (int) Math.ceil(expectedElements / loadFactor);
HashMap<String, String> map = new HashMap<>(initialCapacity, loadFactor);