Junior — Middle
როგორ ხორციელდება HashSet-ში დამატებული ობიექტების შედარება?
sobes.tech AI
პასუხი AI-სგან
HashSet-ə obyektlər əlavə edilərkən, müqayisə iki mərhələdə baş verir:
-
Hash kodunun hesablanması: Obeyektin
hashCode()metodu çağırılır və hash cədvəlində mövqe müəyyən edilir. -
Bərabərliyin yoxlanması: Əgər həmin hash koduna malik hücrədə artıq obyektlər varsa,
equals()metodu çağırılır və yeni obyektin artıq əlavə olunmuş obyektlə bərabər olub-olmadığı yoxlanılır.
Əgər iki obyektin hashCode()-u eynidirsə, lakin equals() false qaytarırsa, hər iki obyekt fərqli sayılır və toplusunda saxlanıla bilər.
Bu səbəbdən, HashSet-in düzgün işləməsi üçün, hashCode() və equals() metodlarının üzərinə yazılması vacibdir ki, bərabər obyektlər eyni hash koduna malik olsun və düzgün müqayisə olunsun.