Sobes.tech
Junior

Ce face metoda equals() în Java?

sobes.tech AI

Răspuns de la AI

Metoda equals() în Java este utilizată pentru compararea obiectelor pentru egalitate. În mod implicit, în clasa Object, compară referințele la obiecte (verifică dacă două variabile indică același obiect în memorie).

Clasele pot redefini metoda equals() pentru a implementa logica de comparare după valoare. Aceasta înseamnă că două obiecte diferite sunt considerate egale dacă câmpurile sau starea lor sunt echivalente.

Când redefinești equals(), este important să redefinești și metoda hashCode(), respectând contractul: dacă două obiecte sunt egale conform equals(), valorile lor hashCode() trebuie să fie aceleași.

Exemplu de redefinire:

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

    // constructor și getters

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