Sobes.tech
Junior — Middle

Come viene calcolato il metodo hashCode in una data class?

sobes.tech AI

Risposta dell'AI

In Kotlin, la data class genera automaticamente il metodo hashCode(), che viene calcolato in base a tutte le proprietà dichiarate nel costruttore principale della classe.

L'algoritmo è approssimativamente il seguente:

  • Per ogni proprietà, viene chiamato il suo hashCode().
  • Questi codici hash vengono combinati usando una formula specifica (solitamente con moltiplicazioni per un numero primo e somma) per ottenere il codice hash finale dell'oggetto.

Questo garantisce che due oggetti data class con gli stessi valori di proprietà abbiano lo stesso hashCode(), il che è importante per il corretto funzionamento in collezioni come HashSet o HashMap.

Esempio:

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