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