Sobes.tech
Junior

Java dasturlash tilida kolleksiyalar qanday amalga oshiriladi?

sobes.tech AI

AIdan javob

  • Interfeyslar:

    • Collection: Barcha kolleksiyalar uchun asosiy interfeys.
    • List: Tartiblangan kolleksiya (indekslar bilan).
    • Set: Takrorlanmaydigan kolleksiya.
    • SortedSet: Takrorlanmaydigan kolleksiya, uning elementlari tartiblangan.
    • Map: Asosiy massiv (kalit-qiymat).
    • SortedMap: Kalitlar bo'yicha tartiblangan massiv.
    • Queue: Elementlarni ishlov berishdan oldin saqlash uchun kolleksiya.
    • Deque: Ikki tomonlama navbat.
  • Sinflar (asosiy amalga oshirishlar):

    • List uchun:

      • ArrayList: Dinamik massiv. Indeks bo'yicha tez kirish, o'rtada joylashtirish/ochirish sekin.
      • LinkedList: Ikki bog'langan ro'yxat. Indeks bo'yicha kirish sekin, o'rtada joylashtirish/ochirish tez.
      • Vector: Eski, sinxronlangan, ArrayList ga teng.
      • Stack: Vector ning kichik sinfi, stek (LIFO) ni amalga oshiradi.
    • Set uchun:

      • HashSet: Hash jadvali asosida amalga oshirilgan. Tartibni kafolatlamaydi.
      • LinkedHashSet: Hash jadvali va bog'langan ro'yxatga asoslangan. Joylashtirish tartibini saqlaydi.
      • TreeSet: Qizil-oq qiyshiq daraxtga asoslangan. Elementlar o'sish tartibida tartiblangan.
    • Map uchun:

      • HashMap: Hash jadvali asosida. Kalit-qiymat juftliklarining tartibini kafolatlamaydi.
      • Hashtable: Eski, sinxronlangan, HashMap ning tengi.
      • LinkedHashMap: Hash jadvali va bog'langan ro'yxatga asoslangan. Joylashtirish tartibini saqlaydi.
      • TreeMap: Qizil-oq daraxtga asoslangan. Juftliklar kalit bo'yicha tartiblangan.
    • Queue uchun:

      • PriorityQueue: Prioritet navbati. Elementlar tabiiy tartibda yoki solishtiruvchi bilan chiqariladi.
      • ArrayDeque: Array asosida ikki tomonlama navbat.
  • Yordamchi:

    • Collections: Kolleksiyalar bilan ishlash uchun statik metodlar (sortlash, qidirish, sinxronlashtirish va boshqalar).
// ArrayList misoli
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
System.out.println(names.get(0)); // Alice
// HashSet misoli
Set<Integer> numbers = new HashSet<>();
numbers.add(1);
numbers.add(2);
numbers.add(1); // Takrorlanmaydigan qo'shiladi
System.out.println(numbers.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
// PriorityQueue misoli
Queue<Integer> priorityQueue = new PriorityQueue<>();
priorityQueue.add(3);
priorityQueue.add(1);
priorityQueue.add(2);
System.out.println(priorityQueue.poll()); // 1 (eng pastki prioritet)