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