Sobes.tech
Junior — Middle

Na co se v jazyce Kotlin používá metoda hashCode()?

sobes.tech AI

Odpověď od AI

Metoda hashCode() v Kotlinu se používá k získání hash kódu objektu — celočíselné hodnoty, která pomáhá efektivně ukládat a hledat objekty v kolekcích, jako jsou HashMap nebo HashSet.

Je důležité, aby pokud jsou dva objekty podle metody equals() shodné, jejich hashCode() také odpovídal. To zajišťuje správnou funkci hashovaných datových struktur.

Příklad přepsání hashCode() spolu s equals():

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

// V datové třídě jsou hashCode a equals implementovány automaticky

// Pokud píšeme třídu ručně:
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
    }
}