Sobes.tech
Junior

Was macht die Methode equals()?

sobes.tech KI

Antwort von AI

Die Methode equals() in Java vergleicht zwei Objekte auf Gleichheit.

Standardmäßig (in der Klasse Object) überprüft sie, ob die Referenzen auf die Objekte gleich sind (ob sie auf dasselbe Exemplar im Speicher verweisen).

Klassen können diese Methode überschreiben, um die logische Gleichheit von Objekten basierend auf ihrem Inhalt zu bestimmen (zum Beispiel werden zwei String-Objekte als gleich angesehen, wenn sie die gleiche Zeichenfolge enthalten, auch wenn es unterschiedliche Instanzen sind).

Beim Überschreiben von equals() ist es auch notwendig, die Methode hashCode() zu überschreiben, um die folgende Vereinbarung einzuhalten: Wenn zwei Objekte nach equals() gleich sind, müssen ihre hashCode()-Methoden gleiche Werte zurückgeben.

Beispiel für eine Überschreibung:

class MyClass {
    private int value;

    public MyClass(int value) {
        this.value = value;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true; // Referenzvergleich
        if (o == null || getClass() != o.getClass()) return false; // Null-Check und Typvergleich
        MyClass myClass = (MyClass) o; // Typumwandlung
        return value == myClass.value; // Logischer Vergleich anhand des Feldes value
    }

    @Override
    public int hashCode() {
        return Objects.hash(value); // Hash-Code-Generierung
    }
}