Junior — Middle
Java tilida HashMap ning ichki tuzilishi va ishlashini tushuntirib bera olasizmi?
sobes.tech AI
AIdan javob
Java'da HashMap, kalit-qiymət juftlarini saqlash uchun ma'lumotlar tuzilmasi bo'lib, kalit orqali tezkor kirishni ta'minlaydi.
Ichki tuzilma:
- HashMap, bucket massividan foydalanadi.
- Kalit uchun hashCode hisoblanadi, keyin esa bu indeksga aylantiriladi.
- Har bir bucketda, odatda, bog'langan ro'yxat yoki daraxt shaklida, bir xil indeksga ega elementlar saqlanadi (Java 8 bilan, ko'p koliziyalar bo'lsa).
Ishlash prinsipi:
- Ob'ekt qo'shishda, kalitning hashidan indeks hisoblanadi.
- Agar bucket bo'sh bo'lsa, element joylashtiriladi.
- Agar bucket band bo'lsa, kalitlarning tengligini (equals) tekshirish orqali qiymat yangilanadi yoki yangi element qo'shiladi.
- Kalit bo'yicha qidirishda ham indeks hisoblanadi va bucketdagi elementlar tekshiriladi.
Misol:
HashMap<String, Integer> map = new HashMap<>();
map.put("apple", 5);
int value = map.get("apple"); // 5
Shu tarzda, HashMap amortizatsiyalangan kirish vaqtini O(1) ta'minlaydi, ammo ko'p koliziyalar bo'lsa, O(n) ga degradatsiya qilishi mumkin.