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

Как высчитывается хэш объект

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

  1. Если equals() возвращает true, то hashCode() должен возвращать одинаковые значения
  2. Обратное не обязательно - разные объекты могут иметь одинаковый хэш (коллизия)

Пример переопределения:

java
@Override
public int hashCode() {
    int result = 17;
    result = 31 * result + name.hashCode();
    result = 31 * result + age;
    return result;
}

Используются простые числа (17, 31) для уменьшения коллизий. Для составных объектов можно использовать Objects.hash():

java
@Override
public int hashCode() {
    return Objects.hash(name, age, address);
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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