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