Sobes.tech
Junior — Middle

Kam naudojama hashCode() metodas Kotlin kalboje?

sobes.tech AI

Atsakymas iš AI

Kotlin hashCode() metodas naudojamas gauti objekto maišos kodą — sveikasis skaičius, kuris padeda efektyviai saugoti ir ieškoti objektus kolekcijose, tokiose kaip HashMap ar HashSet.

Svarbu, kad jei du objektai yra lygūs pagal equals() metodą, jų hashCode() taip pat turi sutapti. Tai užtikrina teisingą hash pagrįstų duomenų struktūrų veikimą.

Pavyzdys, kaip perrašyti hashCode() kartu su equals():

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

// Data klasėje `hashCode()` ir `equals()` yra automatiškai įgyvendinti

// Jei rašome klasę rankiniu būdu:
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
    }
}