Sobes.tech
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