Sobes.tech
Junior — Middle

Vai jūs varat izskaidrot, ko nozīmē metode equals Java objektu salīdzināšanas kontekstā?

sobes.tech AI

Atbilde no AI

Java valodā equals metode tiek izmantots, lai salīdzinātu divu objektu saturu uz vienādību. Noklusējuma gadījumā, ja tas netiek pārrakstīts, Object klases equals metode salīdzina atsauces, tas ir, pārbauda, vai abas mainīgās norāda uz to pašu objektu atmiņā.

Lai salīdzinātu objektus pēc vērtības (piemēram, pēc klases laukiem), ir nepieciešams pārrakstīt equals metodi. Ir svarīgi ievērot metodes līgumu: tā jābūt refleksīvai, simetriskai, tranzitīvai, konsekventai un nedrīkst būt vienāda ar null.

Piemērs, kā pārrakstīt equals Person klasē:

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

    @Override
    public boolean equals(Object obj) {
        if (this == obj) return true; // salīdzinājums ar pašu
        if (obj == null || getClass() != obj.getClass()) return false;
        Person other = (Person) obj;
        return age == other.age && Objects.equals(name, other.name);
    }

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

Tādējādi equals ļauj salīdzināt objektus pēc satura, nevis pēc atsauces.