Sobes.tech
Junior — Middle

Mekkora minimális elemszám szükséges a HashMap automatikus bővítés nélküli inicializálásához?

sobes.tech MI

Válasz az MI-től

A HashMap Java-ban kezdeti kapacitással (capacity) és betöltési tényezővel (load factor) rendelkezik, amelyek alapértelmezés szerint 16 és 0,75. Az automatikus bővítés akkor történik, amikor az elemek száma meghaladja a kapacitás szorozva a load factorral.

Az automatikus bővítés elkerülése érdekében az inicializáláskor olyan kapacitást kell beállítani, amely képes befogadni a szükséges elemek számát anélkül, hogy meghaladná a küszöböt.

A minimális elem szám egy HashMap inicializálásához bővítés nélkül az a maximális szám, amely nem haladja meg a küszöböt = kapacitás * load factor.

Például, ha a kapacitás=16 és a load factor=0,75, akkor a küszöb 12. Ez azt jelenti, hogy 12 elemig történő hozzáadás esetén nem lesz bővítés.

Ha egy adott n elemű HashMap-et szeretne bővítés nélkül inicializálni, állítsa be az initialCapacity értékét >= n / loadFactor.

Példa:

int expectedElements = 10;
float loadFactor = 0.75f;
int initialCapacity = (int) Math.ceil(expectedElements / loadFactor);
HashMap<String, String> map = new HashMap<>(initialCapacity, loadFactor);