Sobes.tech
Junior — Middle

Jak implementujesz metody porównywania obiektów i obliczania ich kodów hash w swoim kodzie?

sobes.tech AI

Odpowiedź od 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.