TreeMap versus HashMap

Beginner Algorithmen und Datenstrukturen Deutsch
Also available: English
Created by Best · 16.08.2026 at 09:13 UTC

Eine sortierte Map in Java basiert auf einem Rot-Schwarz-Baum (balancierter BST): geordnete Schlüssel, $O(\log n)$ pro Operation. Die hash-basierte Map liefert erwartetes $O(1)$ ohne Schlüsselordnung.

Brauchst du range queries oder sortierte Iteration, nimm die baum-basierte Map. Brauchst du nur Mitgliedschaft nach equals/hashCode, reicht die hash-basierte Variante oft.

Suchbauminvariante prüfen: Validate Binary Search Tree [1].

Wo gebraucht

Hash-basierte Map: erwartete konstante Mitgliedschaft ohne Ordnung. Baum-Map: sortierte Keys, Bereichsfragen (subMap), stabile Iteration. Caches und Session-Maps meist Hash; Finanz-/Zeitreihen-Keys oft als geordneter Baum.

Vertiefung

Eine geordnete baumbasierte Abbildung hält Schlüssel gemäss Vergleichsrelation sortiert. Dadurch unterstützt sie Bereichsanfragen, nächste Schlüssel und geordnete Iteration mit pfadlängenabhängigen Kosten.

Eine hashbasierte Abbildung verteilt Schlüssel in Bereiche und bietet bei guter Streuung sehr kurze erwartete Einzelzugriffe. Sie erhält jedoch keine fachliche Schlüsselordnung und kann Bereichsfragen nicht direkt beantworten.

Die Wahl hängt daher nicht allein von durchschnittlicher Lookup-Zeit ab. Vergleichskosten, Hashqualität, benötigte Ordnung, veränderliche Schlüssel und Worst-Case-Anforderungen gehören zum Operationsprofil.

Schwierigkeitsstufen

  1. Punktabfrage und Bereichsabfrage unterscheiden.
  2. Erwartete Kosten von garantierter Ordnungsleistung trennen.
  3. Für ein konkretes API ein passendes Abbildungsprinzip begründen.

Fallstricke

Natürliche Ordnung und equals können unterschiedliche Gleichheitsklassen bilden. Bei hashbasierter Speicherung beschädigen nachträglich veränderte Schlüssel die Auffindbarkeit.


Sources

University approvals: 0
Tasks
Question 1

Welche Map liefert Schlüssel in sortierter Reihenfolge?

Question 2

Welche Anforderung bevorzugt eine geordnete baumbasierte Abbildung?

Question 3

Lies einen Wert aus der TreeMap oder gib 0 zurück.

Hint

TreeMap.get(key) liefert bei fehlendem Schlüssel null. Alternativ stellt getOrDefault(key, defaultValue) einen Standardwert bereit.

Starter code is prefilled; replace TODO blocks with your solution.
1 test case will be used for grading
Run checks runtime behavior only. Final correctness is evaluated when you submit.
Card Info
  • Topic: Algorithmen und Datenstrukturen
  • Difficulty: Beginner
  • Completed: 0 users
Creator
Best
Best
BestBuddy