Sobes.tech
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. ArrayList ga o'xshash, lekin iplar uchun xavfsiz (va kamroq samarali).
      • Stack<E>: Eskirgan, Vector ni kengaytiradigan sinf, stek (LIFO) xulqini amalga oshiradi.
    • Set<E>: Unikal elementlarni o'z ichiga olgan kolleksiya.
      • HashSet<E>: Hash jadvali asosida amalga oshirilgan. Tartibsiz. Tez add, remove, contains operatsiyalari.
      • 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 asosida Deque amalga oshirilgan. LinkedList ga 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. Tez put, get, remove operatsiyalari.
    • 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. HashMap ga 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