3-modul · 6-dars: Queue · Deque

Daraja: O'rta

Queue · Deque. Exception va Collections bo‘yicha nazariya, amaliy namuna va mustaqil mashq.

Tushuntirish

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

## Nazariya FIFO tartibda ishlaydigan — bir uchidan qo'shib, boshqa uchidan oladigan collection.

First In First Out — birinchi kirgan birinchi chiqadi.

## Intervyuga tayyorgarlik ### Queue nima? FIFO tartibda ishlaydigan — bir uchidan qo'shib, boshqa uchidan oladigan collection.

### FIFO nima? First In First Out — birinchi kirgan birinchi chiqadi.

### Queue Interface methodlarini ayting. `add()/offer()` (qo'shish), `remove()/poll()` (olish+o'chirish), `element()/peek()` (ko'rish). `offer/poll/peek` xato o'rniga null/false qaytaradi.

### Queue necha xil turi bor? `PriorityQueue`, `LinkedList`, `ArrayDeque`, `ConcurrentLinkedQueue` va boshqalar.

### Queue asosiy xususiyatlarini ayting. FIFO tartib (PriorityQueue bundan mustasno), bosh/oxirdan amallar.

### Queue-ga null element qo'shamizmi? Ko'pchilik (LinkedList) ruxsat bersa ham, `PriorityQueue` va `ArrayDeque` null ni rad etadi — tavsiya etilmaydi.

### Queue-ga duplicate elementlarni qo'shamizmi? Ha, ruxsat beriladi.

### Queue interface sub-interfacelarini ayting. `Deque`, `BlockingQueue`.

### PriorityQueue nima? Elementlarni ustuvorlik (priority) bo'yicha saralab beruvchi queue (min-heap asosida).

### PriorityQueue-ga null element qo'shamizmi? Yo'q, null ruxsat etilmaydi.

### PriorityQueue asosiy xususiyatlarini ayting. Elementlar tabiiy tartib yoki Comparator bo'yicha saralanadi; bosh element eng yuqori ustuvorlikda; thread-safe emas.

### PriorityQueue thread-safe mi? Yo'q (thread-safe varianti — `PriorityBlockingQueue`).

### Deque nima? Double Ended Queue — ikki uchidan ham qo'shish/olish mumkin bo'lgan queue.

### Deque hierarchysini ayting. `Deque` → `Queue` → `Collection`.

### Deque-ning asosiy xususiyatlarini ayting. Ham FIFO (queue), ham LIFO (stack) sifatida ishlaydi; `addFirst/addLast`, `pollFirst/pollLast`.

### LIFO nima? Last In First Out — oxirgi kirgan birinchi chiqadi (stack).

## 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<Integer> stack = new java.util.ArrayDeque<>();
stack.push(1);
stack.push(2);
System.out.println(stack.pop()); // 2

Keng tarqalgan xatolar

Mashqlar

Teglar: modul-03, pdp, nazariya

Interaktiv ko'rinish (viktorina, izohlar, tarix)