3-modul · 7-dars: Map · HashMap · TreeMap · WeakHashMap

Daraja: O'rta

Map · HashMap · TreeMap · WeakHashMap. Exception va Collections bo‘yicha nazariya, amaliy namuna va mustaqil mashq.

Tushuntirish

## Dars maqsadi Map · HashMap · TreeMap · WeakHashMap tushunchalarini farqlash, nima uchun kerakligini izohlash va kichik misolda qo‘llash.

## Nazariya Key-value juftliklarini saqlaydigan tuzilma; key unique bo'ladi.

`HashMap`, `LinkedHashMap`, `TreeMap`, `Hashtable`, `WeakHashMap`, `ConcurrentHashMap`.

## Intervyuga tayyorgarlik ### Map nima? Key-value juftliklarini saqlaydigan tuzilma; key unique bo'ladi.

### Map interfaceni subclasslarini sanang. `HashMap`, `LinkedHashMap`, `TreeMap`, `Hashtable`, `WeakHashMap`, `ConcurrentHashMap`.

### Map asosiy xususiyatlari? Unique key, har key bitta value, tartib implementatsiyaga bog'liq.

### Map Hierarchy-ni ayting. `Map` → (`SortedMap` → `NavigableMap` → `TreeMap`), hamda `HashMap`, `LinkedHashMap`, `Hashtable`.

### Map nima uchun Object classining hashCode() methodidan foydalanadi? Key qaysi bucket ga tushishini tez aniqlash (izlash/qo'shish O(1)) uchun.

### Qaysi operatsiyalar uchun Map dan foydalanamiz? Kalit orqali qiymatni tez izlash, saqlash va yangilash kerak bo'lganda (lug'at kabi).

### Map key-ga null qiymat bersak nima bo'ladi? HashMap 1 ta null key va ko'p null value ga ruxsat beradi; TreeMap va Hashtable null key ni rad etadi.

### Map-ni iteratsiya paytida o'zgartirsak nima bo'ladi? Fail-fast Map larda `ConcurrentModificationException`; `Iterator.remove()` yoki `ConcurrentHashMap` xavfsiz.

### HashMap nima? Hash table asosidagi Map — O(1) qo'shish/izlash, tartibsiz.

### HashMap asosiy xususiyatlari? Unique key, 1 null key + ko'p null value, tartib yo'q, thread-safe emas.

### HashMap va HashSet o'rtasidagi farq? HashSet elementlar to'plami (ichkarida HashMap dan foydalanadi); HashMap key-value juftliklarini saqlaydi.

### HashMap elementlarni qanday tartibda saqlaydi? Tartibsiz — hash(key) asosida bucket larda.

### HashMap key-ga duplicate elementlarni saqlashimiz mumkinmi? Yo'q; bir xil key qo'shilsa eski value yangisi bilan almashadi.

### HashMap initial capacity va loadFactory-ni ayting. Initial capacity 16, load factor 0.75 (75% to'lganda capacity 2 barobar oshadi — resize).

### HashMap tezmi yoki HashSet? Ikkalasi ham hash table asosida O(1). HashSet ichkarida HashMap dan foydalangani uchun deyarli teng (HashMap bevosita, HashSet ustma-ust qatlam).

### HashMap necha xil yo'l bilan elementlarni olishimiz mumkin? `get(key)`, `keySet()`, `values()`, `entrySet()`, `forEach()`.

### HashMap elementni internal nimada saqlaydi? `Node<K,V>` (bucket) massivida; to'qnashuvda linked list, ko'payganda (8+) Red-Black tree (Java 8 dan).

### LinkedHashMap nima? HashMap + qo'shilish (yoki access) tartibini saqlaydigan Map.

### LinkedHashMap Java-ning nechinchi versiyasida qo'shilgan? Java 4 (JDK 1.4).

### LinkedHashMap va HashMap o'rtasidagi farq? LinkedHashMap tartibni saqlaydi (linked list bilan), HashMap saqlamaydi.

### LinkedHashMap thread-safe mi? Yo'q.

### LinkedHashMap initial capacity va loadFactory-si? 16 va 0.75 (HashMap kabi).

### LinkedHashMap elementlarni qanday tartibda saqlaydi? Qo'shilish tartibida — yoki `accessOrder=true` bo'lsa oxirgi ishlatilish tartibida (LRU kesh uchun).

### LinkedHashMap synchronized mi? Yo'q.

### LinkedHashMap key-ga nechtagacha null qiymat qo'shamiz? 1 ta null key (va ko'p null value).

### TreeMap nima? Key-larni saralangan tartibda saqlaydigan, Red-Black tree asosidagi Map.

### TreeMap-da elementlar Comparator implement qilgan bo'lishi kerakmi? Key lar `Comparable` bo'lishi yoki TreeMap ga `Comparator` berilishi kerak; aks holda `ClassCastException`.

### TreeMap va HashMap o'rtasidagi farq? TreeMap saralangan, O(log n), null key yo'q. HashMap tartibsiz, O(1), 1 null key.

### TreeMap qanday data structure ishlatadi? Red-Black tree (balansli binary search tree).

### TreeMap qanday ishlaydi? Key-lar solishtirilib (Comparable/Comparator) daraxtga saralangan holda joylashadi; izlash/qo'shish O(log n).

### TreeMap-ga null key qo'shamizmi? Yo'q (solishtirish kerak bo'lgani uchun); null value esa mumkin.

### TreeMap asinxronmi? Ha (synchronized emas) — thread-safe emas.

### WeakHashMap nima? Key-lari weak reference bilan saqlanadigan Map; key ga boshqa havola qolmasa, GC uni (va juftligini) tozalaydi.

### WeakReference nima? Obyektga «kuchsiz» havola; agar faqat weak havola qolsa, GC obyektni yig'ishtirishi mumkin.

### WeakHashMap synchronized mi? Yo'q.

### WeakHashMap elementlarni qo'shish tartibini saqlaydimi? Yo'q.

### WeakHashMap-ga nechtagacha null key qo'shamiz? 1 ta.

### WeakHashMap-ga duplicate key qo'shamizmi? Yo'q — bir xil key value ni almashtiradi.

### WeakHashMap va HashMap o'rtasidagi farq? WeakHashMap key-lari weak reference (GC tozalashi mumkin, keshlar uchun). HashMap key-lari strong reference (o'zi tozalanmaydi).

## Versiya va aniqlik Java misollari Java 17 bazasiga mo‘ljallangan. JDK/JRE paketlash usuli distributivga bog‘liq; JVM bayt-kodni interpretatsiya va JIT orqali bajarishi mumkin. GC uchun aniq bajarilish vaqtiga kafolat yo‘q; finalization resurs yopish usuli emas. Thread stop/suspend/resume kabi eski metodlar amaliy yechim emas. Koddagi import, klass yoki tashqi kutubxona kontekstini tekshiring.

## Manbalar [Moduldagi savollar yo‘nalishi](https://github.com/jlkesh/pdp_online_java_lessons/blob/main/interviewquestions/3-module.md) [Rasmiy qo‘llanma](https://dev.java/learn/api/collections-framework/) [Sizning avvalgi savol-javob arxivingiz](https://lightyer.uz/java/interview.html)

Kod quyida o‘quv namunasi sifatida berilgan. To‘liq ilova uchun import, dependency va konfiguratsiya kerak bo‘lishi mumkin. SQLni faqat ajratilgan test bazasida bajaring.

Kod misoli

var counts = new java.util.HashMap<String, Integer>();
for (String word : java.util.List.of("java", "sql", "java")) {
  counts.merge(word, 1, Integer::sum);
}
System.out.println(counts.get("java")); // 2

Keng tarqalgan xatolar

Mashqlar

Teglar: pdp, nazariya, modul-03

Interaktiv ko'rinish (viktorina, izohlar, tarix)