Почему разработчики языка Java предпочли цепочку, а не открытую адресацию для большинства структур, основанных на хеше, за исключением таких, как ThreadLocal? [закрыто]

Я знаю разницу между Open Addressing и Chaining для разрешения хэш-коллизий. Большинство базовых структур данных на основе хэшей, таких как HashSet, HashMapв Java, в основном используют метод цепочки. Я читал, что ThreadLocal на самом деле использует схему зондирования. Итак, я хочу понять, почему открытая адресация не так часто используется в Java? Я имею в виду, что было бы трудно удалить записи, используя эту схему, в том смысле, что вам нужно пометить эти ячейки с помощью какой-то специальной обработки. Однако похоже, что требования к памяти будут низкими для открытой схемы адресации.

Изменить:Я просто хочу понять возможную основную причину / причины этого дизайнерского решения. Я не хочу более мелких деталей. Также я хотел бы знать, почему ThreadLocal использует менее распространенный метод открытой адресации. Я предполагаю, что два ответа могут быть связаны вместе. Поэтому я предпочитаю задавать тот же самый вопрос.

25
задан Geek 18 August 2012 в 16:35
поделиться