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