Sobes.tech
Junior

Τι κάνει η μέθοδος equals() στην Java;

sobes.tech AI

Απάντηση από AI

Η μέθοδος equals() στη Java χρησιμοποιείται για τη σύγκριση αντικειμένων για ισότητα. Από προεπιλογή, στην κλάση Object, συγκρίνει τις αναφορές σε αντικείμενα (ελέγχει αν δύο μεταβλητές δείχνουν στο ίδιο αντικείμενο στη μνήμη).

Οι κλάσεις μπορούν να επαναπροσδιορίσουν τη μέθοδο equals() για να υλοποιήσουν λογική σύγκρισης βάσει τιμής. Αυτό σημαίνει ότι δύο διαφορετικά αντικείμενα θεωρούνται ίσα αν τα πεδία ή η κατάσταση τους είναι ισοδύναμα.

Κατά την επαναπροσδιορισμό του equals(), είναι επίσης σημαντικό να επαναπροσδιορίσετε τη μέθοδο hashCode(), ακολουθώντας τον συμβόλαιο: αν δύο αντικείμενα είναι ίσα σύμφωνα με το equals(), τα hashCode() τους πρέπει να είναι ίδια.

Παράδειγμα επαναπροσδιορισμού:

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

    // κατασκευαστής και getters

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