Sobes.tech
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