Sobes.tech
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.