Встречается на собеседованиях • сегодня
Переопределял ли 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;
}Основные правила:
- Одинаковые объекты → одинаковый
hashCode - Разные объекты могут иметь одинаковый
hashCode(коллизии) - Хеш-код не должен меняться, если объект не изменялся
- Используются те же поля, что и в
equals()
Для генерации можно использовать Objects.hash() или ручной расчет с простыми числами (часто 31).

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