Sobes.tech
Junior — Middle

Können Sie erklären, was die Methode equals im Kontext des Vergleichs von Objekten in Java bedeutet?

sobes.tech KI

Antwort von AI

In Java wird die Methode equals verwendet, um den Inhalt von zwei Objekten auf Gleichheit zu vergleichen. Standardmäßig, wenn sie nicht überschrieben wird, vergleicht die Methode equals der Klasse Object Referenzen, das heißt, sie prüft, ob beide Variablen auf dasselbe Objekt im Speicher verweisen.

Um Objekte nach Wert zu vergleichen (z.B. nach den Feldern der Klasse), muss die Methode equals überschrieben werden. Dabei ist es wichtig, den Vertrag der Methode einzuhalten: Sie muss reflexiv, symmetrisch, transitiv, konsistent sein und darf nicht null sein.

Beispiel für die Überschreibung von equals in der Klasse Person:

public class Person {
    private String name;
    private int age;

    @Override
    public boolean equals(Object obj) {
        if (this == obj) return true; // Vergleich mit sich selbst
        if (obj == null || getClass() != obj.getClass()) return false;
        Person other = (Person) obj;
        return age == other.age && Objects.equals(name, other.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }
}

Auf diese Weise ermöglicht equals den Vergleich von Objekten anhand ihres Inhalts, nicht anhand ihrer Referenz.