Junior — Middle
Data class'da hashCode metodining hisoblash usuli qanday?
sobes.tech AI
AIdan javob
Kotlin'da data class avtomatik tarzda hashCode() metodini yaratadi, u sinfning asosiy konstruktorida e'lon qilingan barcha xususiyatlarga asoslangan.
Algoritm taxminan quyidagicha:
- Har bir xususiyat uchun uning o'zining
hashCode()chaqiriladi. - Bu hash kodlar maxsus formuladan (odatda birinchi son bilan ko'paytirish va qo'shish orqali) foydalanib birlashtiriladi va obyektning yakuniy hash kodi olinadi.
Bu shart bilan, bir xil xususiyat qiymatlari bo'lgan ikki data class obyekti bir xil hashCode() ga ega bo'ladi, bu esa HashSet yoki HashMap kabi kolleksiyalarda to'g'ri ishlash uchun muhimdir.
Misol:
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