Junior — Middle
Data class-da hashCode metodunun hesablanması necə həyata keçirilir?
sobes.tech Süni İntellekt
AI-dan cavab
Kotlin-də, data class avtomatik olaraq hashCode() metodunu yaradır və bu, sinfin əsas konstruktorunda elan olunan bütün xüsusiyyətlərə əsaslanır.
Algoritm təxminən aşağıdakı kimidir:
- Hər bir xüsusiyyət üçün onun öz
hashCode()-u çağırılır. - Bu hash kodlar müəyyən bir formuladan (adətən bir ədəd ilə vurma və toplama istifadə edilərək) birləşdirilir və obyektin yekun hash kodu alınır.
Bu, iki data class obyektinin eyni xüsusiyyət dəyərlərinə malik olması halında eyni hashCode()-a sahib olmasını təmin edir ki, bu da HashSet və ya HashMap kimi kolleksiyalarda düzgün işləməsi üçün vacibdir.
Nümunə:
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