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