Junior — Middle
Hogyan történik a hashCode metódus számítása egy data class-ban?
sobes.tech MI
Válasz az MI-től
Kotlinban a data class automatikusan generálja a hashCode() metódust, amely a osztály fő konstruktorában deklarált összes tulajdonság alapján kerül kiszámításra.
Az algoritmus nagyjából a következő:
- Minden tulajdonsághoz meghívja saját
hashCode()-ját. - Ezeket a hash-kódokat egy adott képlet (általában egy első szám szorozva és összeadva) segítségével kombinálják, hogy megkapják az objektum végső hash-kódját.
Ez biztosítja, hogy két ugyanazokat az értékeket tartalmazó data class objektumnak ugyanaz a hashCode()-ja legyen, ami fontos a HashSet vagy HashMap típusú kollekciók helyes működéséhez.
Példa:
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