Sobes.tech
Junior

Šta radi metoda equals() u Javi?

sobes.tech АИ

Одговор од АИ

Метод equals() у Јави се користи за поређење објеката по једнакости. По подразумеваној вредности, у класи Object, он поређује референце на објекте (проверава да ли две променљиве указују на исти објекат у меморији).

Класе могу пренаписати метод equals() да имплементира логику поређења по вредности. То значи да се два различита објекта сматрају једнаким ако су њихова поља или стање еквивалентни.

При пренаписивању equals() важно је такође пренаписати метод hashCode(), поштујући уговор: ако су два објекта једнака по equals(), њихови hashCode() морају бити исти.

Пример пренаписа:

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

    // конструктор и геттери

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