Sobes.tech
Junior

Ko dara metodequals() Java?

sobes.tech AI

Atbilde no AI

Java equals() metode tiek izmantots objektu vienlīdzības salīdzināšanai. Noklusējuma gadījumā, Object klasē, tas salīdzina atsauces uz objektiem (pārbauda, vai divas mainīgās norāda uz to pašu objektu atmiņā).

Klases var pārdefinēt equals() metodi, lai īstenotu vērtības salīdzināšanas loģiku. Tas nozīmē, ka divi dažādi objekti tiek uzskatīti par vienādiem, ja to lauki vai stāvoklis ir ekvivalents.

Pārdefinējot equals(), ir arī svarīgi pārdefinēt hashCode() metodi, ievērojot līgumu: ja divi objekti ir vienādi pēc equals(), to hashCode() vērtības ir jābūt vienādām.

Piemērs pārdefinēšanai:

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

    // konstruktors un getteri

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