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