Sobes.tech
Junior

Какво прави методът equals() в Java?

sobes.tech AI

Отговор от AI

Методът equals() в Java се използва за сравняване на обекти за равенство. По подразбиране, в класа Object, той сравнява референции към обекти (проверява дали две променливи сочат към един и същи обект в паметта).

Класовете могат да пренапишат метода equals(), за да реализират логика за сравнение по стойност. Това означава, че два различни обекта се считат за равни, ако техните полета или състояние са еквивалентни.

При пренаписване на equals() е важно също така да пренапишете метода hashCode(), като спазвате договора: ако два обекта са равни според equals(), техните hashCode() трябва да са еднакви.

Пример за пренаписване:

public class Person {
    private String name;
    private int age;

    // конструктор и гетъри

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Person person = (Person) o;
        return age == person.age &&
               Objects.equals(name, person.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }
}