Junior — Middle
Kaip atliekamas hashCode metodo skaičiavimas duomenų klasėje?
sobes.tech AI
Atsakymas iš AI
Kotlin'e data class automatiškai generuoja hashCode() metodą, kuris apskaičiuojamas remiantis visomis klasės pagrindiniame konstruktoriuje deklaruotomis savybėmis.
Algoritmas maždaug toks:
- Kiekvienai savybei kviečiamas jos
hashCode(). - Šie hash kodai yra sujungiami naudojant tam tikrą formulę (dažniausiai dauginant iš pirminio skaičiaus ir sudedant), kad gautųsi galutinis objekto
hashCode().
Tai užtikrina, kad du data class objektai su tomis pačiomis savybių reikšmėmis turės tą patį hashCode(), kas yra svarbu teisingam jų veikimui kolekcijose kaip HashSet ar HashMap.
Pavyzdys:
data class User(val id: Int, val name: String)
val user1 = User(1, "Alice")
val user2 = User(1, "Alice")
println(user1.hashCode() == user2.hashCode()) // true