Sobes.tech
Junior

Co dělá metoda equals() v Java?

sobes.tech AI

Odpověď od AI

Metoda equals() v Javě se používá k porovnání objektů na rovnost. Ve výchozím nastavení, v třídě Object, porovnává reference na objekty (kontroluje, zda dvě proměnné odkazují na stejný objekt v paměti).

Třídy mohou přepsat metodu equals(), aby implementovaly logiku porovnání podle hodnoty. To znamená, že dva různé objekty jsou považovány za rovné, pokud jsou jejich pole nebo stav ekvivalentní.

Při přepisování equals() je také důležité přepsat metodu hashCode(), dodržujíc smlouvu: pokud jsou dva objekty podle equals() rovné, jejich hashCode() musí být stejné.

Příklad přepsání:

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

    // konstruktor 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);
    }
}