Ein noch nicht erwähnter Vorteil eines TreeSet
ist, dass sie eine größere "Lokalität" aufweist, was kurz gesagt bedeutet, dass (1) wenn zwei Einträge in der Reihenfolge nahe beieinander liegen, ein TreeSet
platziert sie in der Datenstruktur und damit im Speicher nahe beieinander; und (2) diese Platzierung macht sich das Prinzip der Lokalität zunutze, das besagt, dass ähnliche Daten von einer Anwendung häufig mit ähnlicher Häufigkeit aufgerufen werden.
Dies steht im Gegensatz zu einer HashSet
, wodurch die Einträge über den gesamten Speicher verteilt werden, unabhängig davon, welche Schlüssel sie haben.
Wenn die Latenzkosten für das Lesen von einer Festplatte das Tausendfache der Kosten für das Lesen aus dem Cache oder RAM betragen und der Zugriff auf die Daten wirklich ortsgebunden erfolgt, ist die TreeSet
kann eine viel bessere Wahl sein.