Встречается на собеседованиях • сегодня
Как вычисляется hashCode в HashMap
В HashMap hashCode вычисляется для ключа с помощью метода hashCode(), который должен быть переопределен в классе ключа. Если метод не переопределен, используется реализация из Object.hashCode(), которая возвращает уникальный хэш (обычно на основе адреса памяти).
HashMap дополнительно применяет свою внутреннюю хэш-функцию для улучшения распределения:
java
static final int hash(Object key) {
int h;
return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);
}Здесь:
key.hashCode()– исходный хэш ключа,h >>> 16– сдвиг на 16 бит вправо (для перемешивания старших и младших битов),^– XOR для улучшения распределения.
Итоговый хэш используется для определения индекса корзины (bucket) в массиве:
java
int index = (n - 1) & hash; // n – размер массива (степень двойки)Это обеспечивает равномерное распределение элементов.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы