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