Junior — Middle
Kuidas toimub hashCode meetodi arvutamine andmeklassis?
sobes.tech AI
Vastus AI-lt
Kotlinis, data class automaatselt ģenerē hashCode() metodi, kas tiek aprēķināta, pamatojoties uz visām klases galvenajā konstruktorā deklarētajām īpašībām.
Algoritms ir aptuveni šāds:
- Katrai īpašībai tiek izsaukts tās
hashCode(). - Šie hash kodi tiek apvienoti, izmantojot noteiktu formulu (parasti ar reāla skaitļa reizināšanu un saskaitīšanu), lai iegūtu galīgo objekta
hashCode().
Tas nodrošina, ka divi data class objekti ar vienādām īpašību vērtībām būs ar vienādu hashCode(), kas ir svarīgi to pareizai darbībai kolekcijās, piemēram, HashSet vai HashMap.
Piemērs:
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