Junior — Middle
Ako sa vykonáva výpočet metódy hashCode v data class?
sobes.tech AI
Odpoveď od AI
V Kotlinu data class automaticky generuje metódu hashCode(), ktorá sa vypočíta na základe všetkých vlastností deklarovaných v hlavnom konštruktore triedy.
Algoritmus je približne nasledovný:
- Pre každú vlastnosť sa zavolá jej vlastný
hashCode(). - Tieto hash kódy sa kombinujú pomocou špecifickej vzťahovej formuly (zvyčajne násobením prvočíslom a sčítaním), aby sa získal konečný hash kód objektu.
Toto zabezpečuje, že dva objekty data class s rovnakými hodnotami vlastností budú mať rovnaký hashCode(), čo je dôležité pre správnu funkciu v kolekciách ako HashSet alebo HashMap.
Príklad:
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