Sobes.tech
Junior — Middle

Mire használják a hashCode() metódust a Kotlin nyelvben?

sobes.tech MI

Válasz az MI-től

A hashCode() metódus Kotlinban az objektum hash-kódjának megszerzésére szolgál — egy egész érték, amely segít az objektumok hatékony tárolásában és keresésében olyan kollekciókban, mint a HashMap vagy HashSet.

Fontos, hogy ha két objektum a equals() módszer szerint egyenlő, akkor a hashCode() értékük is egyezzen. Ez biztosítja a hash-alapú adatszerkezetek helyes működését.

A hashCode() és equals() felülírásának példája:

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

// Egy data classban a hashCode és az equals automatikusan implementálva van

// Ha kézzel írunk egy osztályt:
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
    }
}