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
}
}