Sobes.tech
Junior

Σε ποια πεδία πρέπει να κάνετε hashCode αν το equals μας ικανοποιεί;

sobes.tech AI

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

Αν η μέθοδος equals έχει ήδη οριστεί και λειτουργεί σωστά, τότε το hashCode πρέπει να βασίζεται στα ίδια πεδία που συμμετέχουν στη σύγκριση στο equals. Αυτό είναι απαραίτητο για να τηρηθεί ο συμβόλαιο μεταξύ equals και hashCode: αντικείμενα που είναι ίσα σύμφωνα με το equals πρέπει να έχουν τον ίδιο hashCode.

Για παράδειγμα, αν το equals συγκρίνει τα πεδία id και name, τότε το hashCode πρέπει να υπολογίζεται με βάση αυτά τα ίδια πεδία:

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