Junior
Co robi metoda equals() w Java?
sobes.tech AI
Odpowiedź od AI
Metoda equals() w Javie służy do porównywania obiektów pod kątem równości. Domyślnie, w klasie Object, porównuje ona odwołania do obiektów (sprawdza, czy dwie zmienne wskazują na ten sam obiekt w pamięci).
Klasy mogą nadpisywać metodę equals(), aby zaimplementować logikę porównania według wartości. Oznacza to, że dwa różne obiekty są uważane za równe, jeśli ich pola lub stan są równoważne.
Przy nadpisywaniu equals() ważne jest również nadpisanie metody hashCode(), przestrzegając kontraktu: jeśli dwa obiekty są równe według equals(), to ich hashCode() musi być taki sam.
Przykład nadpisania:
public class Person {
private String name;
private int age;
// konstruktor i 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);
}
}