Sobes.tech
Junior — Middle

Zašto se koristi metoda hashCode() u jeziku Kotlin?

sobes.tech АИ

Одговор од АИ

Metoda hashCode() u Kotlin-u se koristi za dobijanje hash koda objekta — celobrojnu vrednost koja pomaže efikasno skladištenje i pretraživanje objekata u kolekcijama kao što su HashMap ili HashSet.

Važno je da ako su dva objekta jednaka prema metodi equals(), njihovi hashCode() takođe moraju biti isti. Ovo obezbeđuje ispravno funkcionisanje hash-ovanih struktura podataka.

Primer prepisivanja hashCode() zajedno sa equals():

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

// U data klasi, hashCode i equals su automatski implementirani

// Ako ručno pišemo klasu:
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
    }
}