Junior — Middle
Ինչպես է կատարվում hashCode մեթոդի հաշվարկը data class-ում:
sobes.tech AI
Պատասխան AI-ից
Կոտլինում, data class-ը ավտոմատ կերպով ստեղծում է hashCode() մեթոդը, որը հաշվարկվում է դասի հիմնական կոնստրուկտորում հայտարարված բոլոր հատկությունների վրա:
Ալգորիթմը մոտավորապես հետևյալն է.
- Յուրաքանչյուր հատկության համար կանչվում է նրա սեփական
hashCode()-ը: - Այս հեշ-կոդերը համակցվում են հատուկ ֆորմուլայով (հաճախ՝ բազմապատկելով մի թիվով և գումարելով), որպեսզի ստացվի վերջնական
hashCode()-ը:
Այսպիսով, երկու data class օբյեկտներ, որոնք ունեն նույն հատկությունների արժեքները, կունենան նույն hashCode(), ինչը կարևոր է HashSet կամ HashMap նման հավաքածուներում ճիշտ գործելու համար:
Օրինակ:
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