Junior
HashMapda ob'ektlarni saqlash qanday amalga oshiriladi?
sobes.tech AI
AIdan javob
Ob'ektlar "kalit-qiymat" juftlari shaklida saqlanadi. HashMap "qutichalar" (buckets) massivini ishlatadi. Juftni qo'shishda:
- Kalitning hash-kodi
hashCode()yordamida hisoblanadi. - Hash-koddan foydalanib, massivdagi qutichaning indeksini aniqlash.
- Ushbu qutichaga
Entryjufti (yoki Java ning yangi versiyalarida mos keladigan narsa) joylashtiriladi, u kalit, qiymat va hash-kodni o'z ichiga oladi. - Agar qutichada allaqachon ob'ektlar bo'lsa, ular bog'langan ro'yxat yoki daraxt hosil qiladi (ko'p to'qnashuvlar bo'lsa).
Ob'ektni kalit bo'yicha olishda:
- Kalitning hash-kodi hisoblanadi.
- Qutichaning indeksi aniqlanadi.
- Qutichada,
equals()trueqaytaradigan va hash-kodlar mos keladigan kalitga ega ob'ekt qidiriladi.
Kalitlar o'zgarmas bo'lishi va hashCode() hamda equals() metodlari to'g'ri amalga oshirilgan bo'lishi kerak.