Мне сказали, что Hashtable
в .NET
использует перефразирование, чтобы уменьшить / избежать столкновения.
Т.е.. «Реазинг работает следующим образом: предположим, что у нас есть набор различных хеш-функций, H1 ... Hn, и при вставке или извлечении элемента из хеш-таблицы изначально используется хеш-функция H1. Если это приводит к столкновению, вместо этого пробуется H2 и далее до Hn, чтобы избежать столкновения в Hashtable. ”
Предположение: у нас есть хеш-таблица с n (где n 1).
Вопрос:
Может кто-нибудь объяснить мне, как CLR отображает ключ к хеш-коду, когда мы ищем (извлекаем) какой-либо элемент (если используются разные хеш-функции)? Как CLR отслеживает (если это) хеш-функцию любого живого объекта (хеш-таблицы)?
Заранее спасибо