Встречается на собеседованиях • сегодня

Как считается hash в Map

HashMap в Java использует хеш-код ключа для определения бакета (корзины), в который будет помещена запись. Процесс включает:

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

Особенности:

  • Для null ключа всегда используется бакет 0
  • При коллизии используется цепочка (в Java 8 при длине > 8 преобразуется в дерево)
  • Хеш кэшируется в Node для быстрого доступа
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы