3-modul · 3-dars: Collections · List · ArrayList

Daraja: O'rta

Collections · List · ArrayList. Exception va Collections bo‘yicha nazariya, amaliy namuna va mustaqil mashq.

Tushuntirish

## Dars maqsadi Collections · List · ArrayList tushunchalarini farqlash, nima uchun kerakligini izohlash va kichik misolda qo‘llash.

## Nazariya O'lchami qat'iy — kengaytirib bo'lmaydi; o'rtaga qo'shish/o'chirish qiyin; faqat bitta tur saqlaydi.

O'lchamni avtomatik o'zgartiradi, qo'shish/o'chirish oson, ko'p tayyor method beradi.

## Intervyuga tayyorgarlik ### Arraylar bilan qanday muammo bor? O'lchami qat'iy — kengaytirib bo'lmaydi; o'rtaga qo'shish/o'chirish qiyin; faqat bitta tur saqlaydi.

### Dynamic arraylarning qulay taraflari qanday? O'lchamni avtomatik o'zgartiradi, qo'shish/o'chirish oson, ko'p tayyor method beradi.

### Collections Framework nima? Ma'lumot tuzilmalari (List, Set, Map, Queue) va ular ustidagi algoritmlarni beruvchi standart arxitektura (`java.util`).

### Collections Framework ning qulay taraflari qanday? Tayyor, sinovdan o'tgan tuzilmalar; yagona interfeys; kamroq kod; yuqori samaradorlik.

### Collections Framework ning eng katta super classi qaysi? `Iterable` interfeysi (uning ostida `Collection`). `Map` esa alohida — Collection dan meros olmaydi.

### Collectionning qanday turlari bor? `List`, `Set`, `Queue` (va ularning avlodlari). `Map` alohida ierarxiya.

### Map Collection ichiga kiradimi? Yo'q. `Map` `Collection` interfeysidan meros olmaydi — bu alohida (key-value) ierarxiya.

### Collectionda primitive typelar ishlata olamizmi? Yo'q, faqat obyekt (reference). Primitivlar wrapper (autoboxing) orqali saqlanadi.

### Collection nima uchun kerak? Ma'lumot to'plamini samarali saqlash, izlash, saralash va boshqarish uchun.

### Collection Framework qaysi packageda joylashgan? `java.util`.

### Collection Framework asosiy interfacelarini ayting. `Collection`, `List`, `Set`, `Queue`, `Deque`, `Map` (va `SortedSet`, `SortedMap`).

### Collection Framework sort qilish uchun asosiy interfacelar? `Comparable` va `Comparator`.

### List interface nima? Tartiblangan (index bilan) va takror (duplicate) elementlarga ruxsat beruvchi collection.

### List interface asosiy xususiyatlarini ayting. Index bilan kirish, qo'shilish tartibi saqlanadi, duplicate va null ga ruxsat.

### List interfacening foydali tomonlari nimada? Index orqali tez kirish, tartibni saqlash va moslashuvchan qo'shish/o'chirish.

### List interfaceni subclasslari qaysi? `ArrayList`, `LinkedList`, `Vector`, `Stack`.

### ArrayList nima? Dynamic array asosidagi List implementatsiyasi — o'lchami avtomatik oshadi.

### ArrayList qaysi interfacedan voris olgan? `List` (→ `Collection` → `Iterable`), shuningdek `RandomAccess`ni implement qiladi.

### ArrayList qaysi marker interfacelardan voris olgan? `RandomAccess`, `Cloneable`, `Serializable`.

### ArrayList ning asosiy xususiyatlarini ayting. Index bilan tez kirish (O(1)), tartib saqlanadi, duplicate va null ga ruxsat, thread-safe emas.

### ArrayList duplikat elementlarni saqlaydimi? Ha, saqlaydi.

### ArrayListga null qo'sha olamizmi? Ha, bir nechta null ham qo'shsa bo'ladi.

### ArrayList elementlarni xotirada qanday tartibda saqlaydi? Qo'shilish tartibida (insertion order), ketma-ket indekslar bilan.

### ArrayList bilan Array o'rtasidagi farq? Array o'lchami qat'iy va primitive ham saqlaydi; ArrayList dinamik, faqat obyekt, ko'p tayyor method.

### ArrayListning kamchiliklari? O'rtaga qo'shish/o'chirish sekin (elementlar suriladi), thread-safe emas, autoboxing qo'shimcha yuk.

### ArrayListning loadFactory-si necha foiz? ArrayList da load factor tushunchasi yo'q; o'lchami to'lganda capacity ~1.5 barobar oshadi (default capacity 10).

### ArrayListdan elementlarni olishning necha xil usuli bor? `get(index)`, `for`/`for-each`, `Iterator`, `ListIterator`, `stream()`.

## 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 names = new java.util.ArrayList<String>();
names.add("Ali");
names.add("Vali");
names.set(0, "Aziz");
System.out.println(names.get(0));

Keng tarqalgan xatolar

Mashqlar

Teglar: pdp, nazariya, modul-03

Interaktiv ko'rinish (viktorina, izohlar, tarix)