Junior
Mida teeb meetod equals() Java-s?
sobes.tech AI
Vastus AI-lt
Java-s equals() meetodit kasutatakse objektide võrdlemiseks võrduslikkuse järgi. Vaikimisi, Object klassis, võrdleb see viiteid objektidele (kontrollib, kas kaks muutujat osutavad samale objektile mälus).
Klassid võivad üle kirjutada equals() meetodi, et rakendada väärtuse võrdlemise loogikat. See tähendab, et kaks erinevat objekti loetakse võrdseteks, kui nende väljad või seisund on ekvivalentne.
equals() meetodi üle kirjutamisel on oluline ka üle kirjutada hashCode() meetod, järgides lepingut: kui kaks objekti on equals() järgi võrdsed, peavad nende hashCode() väärtused olema samad.
Näide üle kirjutamisest:
public class Person {
private String name;
private int age;
// konstruktor ja getterid
@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);
}
}