Встречается на собеседованиях • сегодня
Что нужно сделать для генерации hashCode у класса с полями id, age и email
Для генерации hashCode у класса с полями id, age и email можно использовать Objects.hash() или реализовать вручную. Важно соблюдать контракт hashCode:
- Одинаковые объекты должны возвращать одинаковый
hashCode. - Разные объекты могут возвращать одинаковый
hashCode(коллизии), но это должно быть минимизировано.
Пример с Objects.hash():
java
@Override
public int hashCode() {
return Objects.hash(id, age, email);
}Ручная реализация (оптимизированная):
java
@Override
public int hashCode() {
int result = 17;
result = 31 * result + id;
result = 31 * result + age;
result = 31 * result + (email != null ? email.hashCode() : 0);
return result;
}Важно:
- Если поле
emailможет бытьnull, нужно обработать этот случай. - Константы
17и31выбраны для уменьшения коллизий.

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