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);