Sobes.tech
Junior — Middle

Cum se calculează metoda hashCode într-o data class?

sobes.tech AI

Răspuns de la AI

În Kotlin, data class generează automat metoda hashCode(), care se calculează pe baza tuturor proprietăților declarate în constructorul principal al clasei.

Algoritmul este aproximativ următorul:

  • Pentru fiecare proprietate, se apelează propriul hashCode().
  • Aceste coduri hash sunt combinate folosind o formulă specifică (de obicei prin multiplicare cu un număr prim și adunare) pentru a obține codul hash final al obiectului.

Aceasta asigură că două obiecte data class cu aceleași valori ale proprietăților vor avea același hashCode(), ceea ce este important pentru funcționarea corectă în colecții precum HashSet sau HashMap.

Exemplu:

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