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

Как вычисляется hashCode() объекта

В Java hashCode() вычисляется на основе внутреннего состояния объекта. Стандартная реализация в Object возвращает уникальный числовой идентификатор (часто основанный на адресе памяти), но рекомендуется переопределять hashCode() для своих классов.

Основные правила:

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

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

java
@Override
public int hashCode() {
    final int prime = 31;
    int result = 1;
    result = prime * result + ((name == null) ? 0 : name.hashCode());
    result = prime * result + age;
    return result;
}

Обычно используют простые числа (часто 31) для минимизации коллизий. В современных Java можно использовать Objects.hash() для упрощения:

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

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

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

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