Sobes.tech
Junior — Middle

Para que é que serve o método hashCode() na linguagem Kotlin?

sobes.tech IA

Resposta da IA

O método hashCode() em Kotlin é utilizado para obter o código hash de um objeto, um valor inteiro que ajuda a armazenar e procurar objetos de forma eficiente em coleções como HashMap ou HashSet.

É importante que, se dois objetos forem iguais de acordo com o método equals(), seus hashCode() também coincidam. Isso garante o funcionamento correto das estruturas de dados baseadas em hash.

Exemplo de sobrescrita de hashCode() juntamente com equals():

data class User(val id: Int, val name: String)

// Em uma data class, hashCode e equals são implementados automaticamente

// Se escrevermos uma classe manualmente:
class Person(val id: Int, val name: String) {
    override fun equals(other: Any?): Boolean {
        if (this === other) return true
        if (other !is Person) return false
        return id == other.id && name == other.name
    }

    override fun hashCode(): Int {
        var result = id
        result = 31 * result + name.hashCode()
        return result
    }
}