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

Что нужно сделать для генерации 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 выбраны для уменьшения коллизий.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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