Wie funktioniert HashMap in Java?

Java Grundlagen RU
Kurzfassung:

HashMap ist eine Sammlung zur Speicherung von Schlüssel-Wert-Paaren mit schnellem Zugriff per Hashfunktion. Schlüssel sind eindeutig, Werte dürfen sich wiederholen. Suchen, Einfügen und Löschen sind im Schnitt O(1).

Details

HashMap implementiert das Interface Map und speichert Daten intern in einem Array von "Buckets". Für jeden Schlüssel wird ein Hashcode berechnet, der den Bucket-Index bestimmt. Landen mehrere Schlüssel im selben Bucket (Kollision), werden die Einträge als Liste oder ab Java 8 als Baum gespeichert.

Zentrale Methoden:

Beispielcode:

// HashMap erzeugen
import java.util.*;

Map<String, Integer> map = new HashMap<>();
map.put("apfel", 3);
map.put("banane", 5);

// Wert abrufen
int count = map.get("apfel"); // 3
    

Vorteile und Nachteile

Vorteile Nachteile
Schneller Zugriff per Schlüssel (O(1) im Schnitt) Keine Reihenfolge der Elemente
Flexibler Umgang mit beliebigen Objekten Nicht threadsicher (bei Bedarf ConcurrentHashMap verwenden)
Erlaubt null als Schlüssel und Wert Kann bei schlechtem hashCode() langsam werden

Wichtig: