3-modul · 4-dars: LinkedList · Vector

Daraja: O'rta

LinkedList · Vector. Exception va Collections bo‘yicha nazariya, amaliy namuna va mustaqil mashq.

Tushuntirish

## Dars maqsadi LinkedList · Vector tushunchalarini farqlash, nima uchun kerakligini izohlash va kichik misolda qo‘llash.

## Nazariya Doubly-linked list asosidagi `List` va `Deque` implementatsiyasi — har element (node) keyingi va oldingiga havola qiladi.

Node-lar orqali: har node data + oldingi/keyingi node havolasini saqlaydi (ketma-ket emas, tarqoq).

## Intervyuga tayyorgarlik ### LinkedList nima? Doubly-linked list asosidagi `List` va `Deque` implementatsiyasi — har element (node) keyingi va oldingiga havola qiladi.

### LinkedList elementlarni xotirada qanday saqlaydi? Node-lar orqali: har node data + oldingi/keyingi node havolasini saqlaydi (ketma-ket emas, tarqoq).

### LinkedListning qanday turlari bor? Singly linked, Doubly linked va Circular linked list (Java `LinkedList` — doubly linked).

### LinkedListning ArrayListdan qanday afzalligi bor? Bosh/o'rtaga qo'shish va o'chirish tez (O(1) — faqat node havolasi o'zgaradi), elementlarni surish shart emas.

### LinkedListning qanday kamchiliklari bor? Index bilan kirish sekin (O(n)), har node uchun qo'shimcha xotira (havolalar).

### LinkedList va ArrayList o'rtasidagi farq? ArrayList — array asosli, index bilan tez kirish. LinkedList — node asosli, qo'shish/o'chirish tez, kirish sekin.

### LinkedList initial capacity-si nima uchun nol? Chunki u dinamik node-lardan iborat — oldindan joy ajratilmaydi, har qo'shishda yangi node yaratiladi.

### Node nima? Ma'lumot va boshqa node(lar)ga havolani saqlaydigan tuzilma birligi.

### LinkedList qanday data strukturadan foydalanadi? Doubly linked list.

### LinkedList loadFactory-si necha foiz? Yo'q — load factor faqat hash asosli tuzilmalarda bo'ladi; LinkedList da qo'llanmaydi.

### LinkedList ning super classi qaysi? `AbstractSequentialList` (u `AbstractList` → `AbstractCollection`).

### LinkedListdan elementni olish nima uchun sekin? Chunki index bo'yicha node topish uchun boshdan (yoki oxirdan) ketma-ket yurish kerak (O(n)).

### Vector nima? ArrayList kabi dinamik array, lekin synchronized (thread-safe) — eski (legacy) class.

### Vector classining super classi qaysi? `AbstractList`.

### Vector class nima uchun JDK 5 dan deprecated hisoblanadi? To'liq deprecated emas, lekin legacy hisoblanadi: har amal synchronized bo'lgani uchun sekin. O'rniga `ArrayList` yoki `CopyOnWriteArrayList` tavsiya etiladi.

### Vector classining initial capacity-si nechi? 10.

### Vector va ArrayList o'rtasidagi farq? Vector synchronized (thread-safe) va sekin, capacity 2 barobar oshadi. ArrayList sync emas, tez, ~1.5 barobar oshadi.

### Vector nima uchun ArrayListdan sekin? Har bir methodi synchronized — qulflash (lock) qo'shimcha yuk beradi.

### Vector thread-safe mi? Bo'lsa nima uchun? Ha — chunki methodlari `synchronized`.

### Vectordan elementlarni necha xil usulda olishimiz mumkin? `get()`, `elementAt()`, `Enumeration`, `Iterator`, `ListIterator`, `for-each`.

### Vectorga iteratsiya paytida o'zgartirish kiritsak nima bo'ladi? `Iterator` orqali yursak `ConcurrentModificationException` (fail-fast); `Enumeration` esa fail-fast emas.

## 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

java.util.Deque<String> queue = new java.util.LinkedList<>();
queue.addLast("bir");
queue.addLast("ikki");
System.out.println(queue.removeFirst()); // bir

Keng tarqalgan xatolar

Mashqlar

Teglar: pdp, modul-03, nazariya

Interaktiv ko'rinish (viktorina, izohlar, tarix)