Junior
Java'da kolleksiyalar hierarxiyasi haqida gapiring.
sobes.tech AI
AIdan javob
Java'dagi kolleksiya hierarxiyasi ikki asosiy interfeys atrofida qurilgan: Collection va Map. Bu java.util paketida belgilangan.
Collection<E>: Ko'p kolleksiyalar uchun asosiy interfeys. Elementlar guruhini ifodalaydi. Elementlarning tartibi yoki unikalligini kafolatlamaydi.List<E>: Tartiblangan kolleksiya (ketma-ketlik). Elementlarning aniq indekslari bor. Takroriy elementlarga ruxsat beriladi.ArrayList<E>: Array asosida amalga oshirilgan. Tez tasodifiy kirish, sekin joylashtirish/ochirish o'rtada.LinkedList<E>: Ulanadigan ro'yxat asosida amalga oshirilgan. Sekin tasodifiy kirish, tez joylashtirish/ochirish boshida/oxirida.Vector<E>: Eskirgan, sinxronlashtirilgan sinf.ArrayListga o'xshash, lekin iplar uchun xavfsiz (va kamroq samarali).Stack<E>: Eskirgan,Vectorni kengaytiradigan sinf, stek (LIFO) xulqini amalga oshiradi.
Set<E>: Unikal elementlarni o'z ichiga olgan kolleksiya.HashSet<E>: Hash jadvali asosida amalga oshirilgan. Tartibsiz. Tezadd,remove,containsoperatsiyalari.LinkedHashSet<E>: Qo'shilish tartibini saqlaydi.SortedSet<E>: O'sish tartibida saralangan to'plam.TreeSet<E>: Qizil-siyoh daraxt asosida amalga oshirilgan. Tartiblangan tartibni kafolatlaydi.
Queue<E>: Elementlarni ishlashdan oldin saqlash uchun mo'ljallangan kolleksiya, ko'pincha FIFO tartibida (Birinchi kirgan, birinchi chiqadi).PriorityQueue<E>: Prioritetli navbat. Elementlar ularning prioritetiga muvofiq chiqariladi.Deque<E>: (Ikki tomonlama navbat) Ikki tomonlama navbat. Ikkala tomondan joylashtirish va chiqarishni qo'llab-quvvatlaydi.ArrayDeque<E>: Dinamik array asosidaDequeamalga oshirilgan.LinkedListga qaraganda tezroq, stek yoki navbat sifatida foydalanish uchun.
Map<K, V>: Kalitlarni qiymatlarga moslashtiradigan obyekt. Kalitlar unikal, qiymatlar takrorlanishi mumkin.HashMap<K, V>: Hash jadvali asosida amalga oshirilgan. Tartibsiz. Tezput,get,removeoperatsiyalari.LinkedHashMap<K, V>: Qo'shilish yoki kirish tartibini saqlaydi.SortedMap<K, V>: Kalitlar bo'yicha tartiblangan xarita.TreeMap<K, V>: Qizil-siyoh daraxt asosida amalga oshirilgan. Kalitlar bo'yicha tartiblangan tartibni kafolatlaydi.
Hashtable<K, V>: Eskirgan, sinxronlashtirilgan sinf.HashMapga o'xshash, lekin iplar uchun xavfsiz (kamroq samarali).
Asosiy interfeyslar:
| Interfeys | Tavsifi | Tartib | Unikal | Dublikatlar |
|---|---|---|---|---|
Collection |
Elementlar guruhini tashkil etadi | +/- | +/- | Ha |
List |
Tartiblangan kolleksiya | Ha | Yo'q | Ha |
Set |
Unikal elementlar kolleksiyasi | +/- | Ha | Yo'q |
Queue |
Ishlash uchun kolleksiya (FIFO) | Ha | Yo'q | Ha |
Deque |
Ikki tomonli navbat | Ha | Yo'q | Ha |
Map |
Kalit-qiymat xaritasi | +/- | Kalit bo'yicha | Ha |
SortedSet |
Tartiblangan to'plam | Ha | Ha | Yo'q |
SortedMap |
Kalitlar bo'yicha tartiblangan xarita | Ha | Kalit bo'yicha | Ha |
Foydalanish misoli:
// ArrayList misoli
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
System.out.println(names.get(0)); // Alice
// HashSet misoli
Set<Integer> uniqueNumbers = new HashSet<>();
uniqueNumbers.add(1);
uniqueNumbers.add(2);
uniqueNumbers.add(1); // Takroriy element inkor qilinadi
System.out.println(uniqueNumbers.size()); // 2
// HashMap misoli
Map<String, Integer> ages = new HashMap<>();
ages.put("Alice", 30);
ages.put("Bob", 25);
System.out.println(ages.get("Alice")); // 30