Sobes.tech
Junior

Čo robí metóda equals() v Jave?

sobes.tech AI

Odpoveď od AI

Metóda equals() v Jave sa používa na porovnanie objektov na rovnosť. Predvolene, v triede Object, porovnáva referencie na objekty (kontroluje, či dve premenné ukazujú na ten istý objekt v pamäti).

Triedy môžu prepísať metódu equals(), aby implementovali logiku porovnania podľa hodnoty. To znamená, že dva rôzne objekty sú považované za rovnaké, ak ich polia alebo stav sú ekvivalentné.

Pri prepise equals() je tiež dôležité prepísať metódu hashCode(), dodržiavajúc zmluvu: ak sú dva objekty rovnaké podľa equals(), ich hashCode() musí byť rovnaké.

Príklad prepísania:

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

    // konštruktor a gettery

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