Sobes.tech
Junior — Middle

Wie viele Elemente sind mindestens erforderlich, um eine HashMap ohne automatische Erweiterung zu initialisieren?

sobes.tech KI

Antwort von AI

HashMap in Java hat eine Anfangskapazität und einen Ladefaktor, standardmäßig 16 bzw. 0,75. Die automatische Erweiterung erfolgt, wenn die Anzahl der Elemente die Kapazität multipliziert mit dem Ladefaktor übersteigt.

Um eine automatische Erweiterung bei der Initialisierung zu vermeiden, muss die Kapazität so festgelegt werden, dass sie die benötigte Anzahl an Elementen aufnehmen kann, ohne die Schwelle zu überschreiten.

Die minimale Anzahl an Elementen, um einen HashMap ohne Erweiterung zu initialisieren, ist die maximal mögliche Anzahl, die die Schwelle = Kapazität * Ladefaktor nicht überschreitet.

Zum Beispiel, bei Kapazität=16 und Ladefaktor=0,75 ist die Schwelle 12. Das bedeutet, dass beim Hinzufügen von bis zu 12 Elementen keine Erweiterung erfolgt.

Wenn Sie einen HashMap mit einer bestimmten Anzahl von Elementen n ohne Erweiterung initialisieren möchten, setzen Sie initialCapacity >= n / loadFactor.

Beispiel:

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