Dlaczego projektanci języka Java preferowali łańcuchowanie nad adresowaniem otwartym dla większości struktur opartych na hash, z wyjątkiem niektórych takich jak ThreadLocal? [Zamknięte]

Znam różnicę między Open Addressing i Chaining dla rozwiązywania kolizji hash. Większość podstawowych struktur danych opartych na hashach toHashSet,HashMap w Javie korzystaj przede wszystkim z techniki łączenia łańcuchów. Czytałem, że ThreadLocal faktycznie używa schematu sondowania. Chcę więc zrozumieć, dlaczego otwarte adresowanie nie jest tak często używane w Javie? Chodzi mi o to, że trudno byłoby usunąć rekordy przy użyciu tego schematu, w tym sensie, że trzeba oznaczyć te komórki specjalną obsługą. Wydaje się jednak, że zapotrzebowanie na pamięć będzie niskie dla schematu otwartego adresowania.

Edytować : Chcę tylko zrozumieć możliwe główne przyczyny / powody tej decyzji projektowej. Nie chcę drobniejszych szczegółów. Chciałbym również wiedzieć, dlaczego ThreadLocal używa mniej powszechnej techniki otwartego adresowania. Sądzę, że dwie odpowiedzi mogą być ze sobą powiązane. Więc wolę zadać to samo pytanie.

questionAnswers(1)

yourAnswerToTheQuestion