Sobes.tech
Junior

Ce face metoda equals()?

sobes.tech AI

Răspuns de la AI

Metoda equals() în Java compară două obiecte pentru a verifica dacă sunt egale.

În mod implicit (în clasa Object), verifică dacă referințele către obiecte sunt identice (dacă indică același exemplar în memorie).

Clasele pot redefine această metodă pentru a determina egalitatea logică a obiectelor bazată pe conținutul lor (de exemplu, două obiecte String sunt considerate egale dacă conțin aceeași secvență de caractere, chiar dacă sunt instanțe diferite).

Când redefinești equals(), trebuie să redefinești și metoda hashCode() pentru a respecta următoarea convenție: dacă două obiecte sunt egale conform equals(), atunci metodele lor hashCode() trebuie să returneze valori identice.

Exemplu de redefinire:

class MyClass {
    private int value;

    public MyClass(int value) {
        this.value = value;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true; // Compararea referințelor
        if (o == null || getClass() != o.getClass()) return false; // Verificare null și tip
        MyClass myClass = (MyClass) o; // Casting
        return value == myClass.value; // Comparare logică pe câmpul value
    }

    @Override
    public int hashCode() {
        return Objects.hash(value); // Generare hash
    }
}