Встречается на собеседованиях • сегодня
Как считается hash в Map
HashMap в Java использует хеш-код ключа для определения бакета (корзины), в который будет помещена запись. Процесс включает:
- Вычисление
hashCode()ключа (может быть переопределен) - Дополнительное "перемешивание" хеша для уменьшения коллизий
java
static final int hash(Object key) {
int h;
return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);
}- Определение индекса бакета:
(n - 1) & hash, гдеn- текущий размер массива бакетов (всегда степень двойки)
Особенности:
- Для
nullключа всегда используется бакет 0 - При коллизии используется цепочка (в Java 8 при длине > 8 преобразуется в дерево)
- Хеш кэшируется в Node для быстрого доступа

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