Warum bevorzugten die Sprachentwickler von Java die Verkettung gegenüber der offenen Adressierung für die meisten Hash-basierten Strukturen mit Ausnahme einiger wie ThreadLocal? [geschlossen]

Ich kenne den Unterschied zwischen Open Addressing und Chaining zum Auflösen von Hash-Kollisionen. Die meisten der grundlegenden Hash-basierten Datenstrukturen mögenHashSet,HashMap In Java wird hauptsächlich die Verkettungstechnik verwendet. Ich habe gelesen, dass ThreadLocal tatsächlich ein Prüfschema verwendet. Ich möchte verstehen, warum die offene Adressierung in Java nicht so häufig verwendet wird. Ich meine, es wäre schwierig, Datensätze mit diesem Schema zu löschen, in dem Sinne, dass Sie diese Zellen mit einer speziellen Behandlung markieren müssen. Es scheint jedoch, dass der Speicherbedarf für das offene Adressierungsschema gering sein wird.

Bearbeiten : Ich möchte nur die möglichen Hauptgründe für diese Entwurfsentscheidung verstehen. Ich möchte keine feineren Details. Außerdem würde ich gerne wissen, warum ThreadLocal die weniger verbreitete Methode der offenen Adressierung verwendet. Ich denke, die beiden Antworten können miteinander in Beziehung gesetzt werden. Also stelle ich lieber die gleiche Frage.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage