Sobes.tech
Назад к вопросам
Junior — Middle
64

Как вы реализуете методы сравнения объектов и вычисления их хэш-кодов в вашем коде?

Компании, где спрашивали
IT OneIT One

Ответ от нейросети

sobes.tech AI

В Java для корректного сравнения объектов и вычисления их хэш-кодов обычно переопределяют методы equals() и hashCode() из класса Object.

Пример реализации:

@Override
public boolean equals(Object obj) {
    if (this == obj) return true;
    if (obj == null || getClass() != obj.getClass()) return false;
    MyClass other = (MyClass) obj;
    return Objects.equals(field1, other.field1) && field2 == other.field2;
}

@Override
public int hashCode() {
    return Objects.hash(field1, field2);
}

Важно, чтобы если два объекта равны по equals(), то их hashCode() тоже были одинаковыми. Это критично для корректной работы коллекций, таких как HashMap и HashSet.