Junior — Middle
Hogyan határozzuk meg a vödör indexét az elem beszúrásához a HashMap hash-táblába algoritmikus számítások segítségével?
sobes.tech MI
Válasz az MI-től
В хеш-таблице HashMap индекс бакета для вставки элемента вычисляется на основе хеш-кода ключа. Алгоритмически это происходит так:
- Вычисляется хеш-код ключа с помощью метода
hashCode(). - Хеш-код дополнительно обрабатывается (например, в Java HashMap используется смешивание битов для лучшего распределения).
- Индекс бакета определяется как остаток от деления обработанного хеш-кода на размер массива бакетов (обычно с помощью побитовой операции AND, если размер — степень двойки).
Пример (упрощённо):
int hash = key.hashCode();
int index = (hash) & (table.length - 1);
Такой способ позволяет эффективно распределять элементы по бакетам и быстро находить их при поиске.