Junior — Middle
Milleks kasutatakse meetodit hashCode() Kotlin keeles?
sobes.tech AI
Vastus AI-lt
Kotlinis kasutatakse hashCode() meetodit objekti hash-koodi saamiseks — täisarv, mis aitab objekti tõhusalt salvestada ja otsida sellistes kogumites nagu HashMap või HashSet.
Oluline on, et kui kaks objekti on equals() meetodi järgi võrdsed, siis nende hashCode() väärtused peaksid samuti ühtima. See tagab hash-põhiste andmestruktuuride korrektse toimimise.
Näide hashCode() ja equals() ülevõtmise kohta:
data class User(val id: Int, val name: String)
// Data klassis on `hashCode()` ja `equals()` automaatselt implementeeritud
// Kui kirjutame klassi käsitsi:
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
}
}