Sobes.tech
Junior — Middle

Können Sie die interne Struktur und den Arbeitsmechanismus der Hash-Tabelle in Java erklären?

sobes.tech KI

Antwort von AI

Eine Hash-Tabelle in Java (z.B. HashMap) ist eine Datenstruktur, die Schlüssel-Wert-Paare speichert und schnellen Zugriff über den Schlüssel ermöglicht.

Interne Struktur:

  • Das Grundelement ist ein Array von Buckets (Eimern).
  • Jeder Bucket enthält entweder null oder eine verkettete Liste (oder einen Baum, wenn viele Elemente vorhanden sind) von Elementen mit demselben Hash-Code modulo der Array-Größe.

Funktionsmechanismus:

  1. Beim Hinzufügen eines Elements wird der Hash-Code des Schlüssels berechnet und der Index des Buckets bestimmt.
  2. Ist der Bucket leer, wird das Element dort platziert.
  3. Ist der Bucket belegt, wird in der verketteten Liste (oder im Baum) nach einem passenden Schlüssel gesucht:
    • Wenn der Schlüssel gefunden wird, wird der Wert aktualisiert.
    • Wenn nicht, wird das Element zur Liste hinzugefügt.
  4. Bei Erreichen eines bestimmten Füllgrads wird das Array vergrößert (rehash), um die Leistung zu erhalten.

Dieser Ansatz sorgt für eine durchschnittliche Komplexität der Operationen Einfügen, Suchen und Löschen nahe bei O(1).

Beispiel für die Verwendung:

Map<String, Integer> map = new HashMap<>();
map.put("key1", 100);
Integer value = map.get("key1"); // schneller Zugriff über den Schlüssel