Junior — Middle
Πώς γίνεται ο υπολογισμός της μεθόδου hashCode σε μια data class;
sobes.tech AI
Απάντηση από AI
Στην Kotlin, η data class δημιουργεί αυτόματα τη μέθοδο hashCode(), η οποία υπολογίζεται βάσει όλων των ιδιοτήτων που δηλώνονται στον κύριο κατασκευαστή της κλάσης.
Ο αλγόριθμος είναι περίπου ο εξής:
- Για κάθε ιδιότητα, καλείται το δικό του
hashCode(). - Αυτά τα κωδικοί κατακερματισμού συνδυάζονται με μια συγκεκριμένη φόρμουλα (συνήθως με πολλαπλασιασμό με έναν πρωταρχικό αριθμό και πρόσθεση) για να ληφθεί ο τελικός κωδικός κατακερματισμού του αντικειμένου.
Αυτό διασφαλίζει ότι δύο αντικείμενα data class με τις ίδιες τιμές ιδιοτήτων θα έχουν τον ίδιο hashCode(), κάτι που είναι σημαντικό για τη σωστή λειτουργία σε συλλογές όπως το HashSet ή το HashMap.
Παράδειγμα:
data class User(val id: Int, val name: String)
val user1 = User(1, "Alice")
val user2 = User(1, "Alice")
println(user1.hashCode() == user2.hashCode()) // true