Хеш-код приводят к диапазону индексов таблицы: обычно берут остаток от деления на число бакетов или маску для размера, равного степени двойки.
Как по значению хеш-кода определяется нужный бакет?
Хеш-код приводят к диапазону индексов таблицы: обычно берут остаток от деления на число бакетов или маску для размера, равного степени двойки.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Хеш-код приводят к диапазону индексов таблицы: обычно берут остаток от деления на число бакетов или маску для размера, равного степени двойки.
Например, для неотрицательного h и m бакетов индекс равен h % m. При m = 2^k можно использовать h & (m - 1), если распределение битов хеша подходит. Конкретная коллекция может применять смешивание и оптимизированное вычисление остатка.
Одинаковый бакет не означает равенство ключей: коллизии разрешаются цепочками или открытой адресацией, затем вызывается сравнение ключей. При изменении размера таблицы размещение пересчитывают. Math.Abs для знакового хеша — не универсальное исправление, поскольку минимальное отрицательное значение имеет особый случай.