Sobes.tech
Middle

Java'da kolleksiyalar hierarxiyasini tavsiflang.

sobes.tech AI

AIdan javob

Java'da kolleksiyalar hierarxiyasi, obyektlar guruhlarini standart tarzda ifodalash uchun taqdim etilgan interfeyslar to'plamiga asoslangan.

Asosiy interfeyslar:

  • Collection: hierarxiyaning asosiy interfeysi. Barcha kolleksiyalarda qo'llaniladigan asosiy operatsiyalarni belgilaydi: qo'shish, o'chirish, elementlarning mavjudligini tekshirish, o'lchamini aniqlash.
  • Set: takrorlanmaydigan va elementlarning aniq tartibi bo'lmagan kolleksiya.
  • List: indeks bo'yicha elementlarga kirish imkoniyatiga ega tartiblangan kolleksiya. Takrorlanmalar bo'lishi mumkin.
  • Queue: ishlov berishdan oldin elementlarni saqlash uchun mo'ljallangan kolleksiya. Odatda FIFO (Birinchi kirgan, birinchi chiqadi) qoidasi asosida ishlaydi, ammo boshqa amalga oshirishlar ham mavjud.
  • Deque: ikki tomonlama navbat. Har ikkala uchidan elementlar qo'shish va o'chirishni qo'llab-quvvatlaydi.
  • Map: "kalit-qiymat" juftlarini saqlovchi kolleksiya. Kalitlar unikal bo'lishi kerak. Collection interfeysini kengaytirmaydi.

Asosiy amalga oshiruvchi sinflar (misollar):

Interfeys Amalga oshiruvchi sinflar (misollar) Tavsifi
Set HashSet, LinkedHashSet, TreeSet Takrorlanmaydi. HashSet - tartibsiz, LinkedHashSet - qo'shilish tartibini saqlaydi, TreeSet - tartiblangan.
List ArrayList, LinkedList, Vector Tartiblangan. ArrayList - massiv asosida, LinkedList - bog'langan ro'yxat asosida, Vector - sinxronlashtirilgan (eski).
Queue LinkedList, PriorityQueue Ishlov berish uchun. LinkedList - FIFO, PriorityQueue - prioritetlarga asoslangan.
Deque ArrayDeque, LinkedList Ikki tomonlama navbat. ArrayDeque - massiv asosida, LinkedList - bog'langan ro'yxat asosida.
Map HashMap, LinkedHashMap, TreeMap, Hashtable Kalit-qiymat. HashMap - tartib kafolatlanmagan, LinkedHashMap - qo'shilish/erish tartibini saqlaydi, TreeMap - kalitlar bo'yicha tartiblangan, Hashtable - sinxronlashtirilgan (eski).

ArrayList dan foydalanish misoli:

// Stringlardan iborat ArrayList yaratish
List<String> mevalar = new ArrayList<>();
// Elementlar qo'shish
mevalar.add("Olma");
mevalar.add("Banana");
mevalar.add("Apelsin");
// Indeks bo'yicha kirish
String birinchiMeva = mevalar.get(0); // Olma
// Kolleksiyaning o'lchami
int o'lcham = mevalar.size(); // 3

HashSet dan foydalanish misoli:

// Integer turidagi HashSet yaratish
Set<Integer> sonlar = new HashSet<>();
// Elementlar qo'shish (takrorlanmalar e'tiborga olinmaydi)
sonlar.add(1);
sonlar.add(2);
sonlar.add(2); // E'tiborga olinmaydi
// Kolleksiyaning o'lchami
int o'lcham = sonlar.size(); // 2

HashMap dan foydalanish misoli:

// String kalit va Integer qiymat bilan HashMap yaratish
Map<String, Integer> yoshlar = new HashMap<>();
// Kalit-qiymat juftlarini qo'shish
yoshlar.put("Alice", 30);
yoshlar.put("Bob", 25);
// Kalit bo'yicha qiymatni olish
int AliceYoshi = yoshlar.get("Alice"); // 30
// Kalit mavjudligini tekshirish
boolean mavjudmi = yoshlar.containsKey("Bob"); // true