Sobes.tech
Junior — Middle

Como é que o método hashCode é calculado numa data class?

sobes.tech IA

Resposta da IA

No Kotlin, a data class gera automaticamente o método hashCode(), que é calculado com base em todas as propriedades declaradas no construtor principal da classe.

O algoritmo é aproximadamente o seguinte:

  • Para cada propriedade, é chamado o seu próprio hashCode().
  • Esses códigos hash são combinados usando uma fórmula específica (geralmente usando multiplicação por um número primo e soma) para obter o código hash final do objeto.

Isso garante que dois objetos data class com os mesmos valores de propriedades terão o mesmo hashCode(), o que é importante para o funcionamento correto em coleções como HashSet ou HashMap.

Exemplo:

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