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

Переопределял ли hashCode

Да, переопределял. При переопределении equals() всегда нужно переопределять hashCode(), чтобы соблюдать контракт: если два объекта равны по equals(), их хеш-коды должны быть одинаковыми. Пример:

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;
}

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

  1. Одинаковые объекты → одинаковый hashCode
  2. Разные объекты могут иметь одинаковый hashCode (коллизии)
  3. Хеш-код не должен меняться, если объект не изменялся
  4. Используются те же поля, что и в equals()

Для генерации можно использовать Objects.hash() или ручной расчет с простыми числами (часто 31).

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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