Sobes.tech
Junior

Ką daro equals() metodas Java?

sobes.tech AI

Atsakymas iš AI

Java equals() metodas naudojamas objektų lyginimui pagal lygybę. Pagal numatytuosius nustatymus, Object klasėje, jis lygina nuorodas į objektus (tikrina, ar dvi kintamosios nurodo į tą patį objektą atmintyje).

Klasės gali perrašyti equals() metodą, kad įgyvendintų reikšmės lyginimo logiką. Tai reiškia, kad du skirtingi objektai yra laikomi lygiais, jei jų laukai arba būsena yra ekvivalenti.

Perrašant equals(), taip pat svarbu perrašyti hashCode() metodą, laikantis sutarties: jei du objektai yra lygūs pagal equals(), jų hashCode() turi būti vienodi.

Pavyzdys perrašymo:

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

    // konstruktorius ir getteriai

    @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);
    }
}