Junior
Mit csinál az equals() metódus?
sobes.tech MI
Válasz az MI-től
A equals() metódus Java-ban két objektumot összehasonlít az egyenlőség szempontjából.
Alapértelmezés szerint (az Object osztályban) ellenőrzi, hogy a referenciák ugyanarra az objektumra mutatnak-e (ugyanarra a példányra a memóriában).
Az osztályok felülírhatják ezt a metódust az objektumok tartalmán alapuló logikai egyenlőség meghatározására (például két String objektum akkor tekinthető egyenlőnek, ha ugyanaz a karakterlánc van bennük, még akkor is, ha külön példányok).
A equals() felülírásakor szükséges a hashCode() metódust is felülírni, hogy megfeleljen a következő megállapodásnak: ha két objektum egyenlő a equals() szerint, akkor a hashCode() értékeiknek is egyezniük kell.
Példa a felülírásra:
class MyClass {
private int value;
public MyClass(int value) {
this.value = value;
}
@Override
public boolean equals(Object o) {
if (this == o) return true; // Referencia összehasonlítás
if (o == null || getClass() != o.getClass()) return false; // Null és típus ellenőrzés
MyClass myClass = (MyClass) o; // Típuscast
return value == myClass.value; // Logikai összehasonlítás a value mező alapján
}
@Override
public int hashCode() {
return Objects.hash(value); // Hash kód generálása
}
}