Sobes.tech
Junior

Java программалоо тилинде коллекциялардын ишке ашырылышы кандай?

sobes.tech AI

AIден жооп

  • Интэрфейстер:

    • Collection: Бардык топтомдор үчүн негизги интерфейс.
    • List: Тартиптелген топтом (индекс менен).
    • Set: Кайталаган элементтерсиз топтом.
    • SortedSet: Тартиптелген, кайталаган элементтерсиз топтом, элементтери сорттолгон.
    • Map: Асоциативдүү массив (ключ-баалуулук).
    • SortedMap: Ключтар боюнча сорттолгон ассоциативдүү массив.
    • Queue: Элементтерди сактоо үчүн топтом, алардын иштетилишинен мурун.
    • Deque: Ике тараптуу кезек.
  • Класстар (негизги ишке ашырылыштар):

    • List үчүн:

      • ArrayList: Динамикалык массив. Индекс боюнча тез жетүү, ортосунда кошуу/ажыратуу жайыраак.
      • LinkedList: Эки байланышкан тизмек. Индекс боюнча жайыраак жетүү, ортосунда кошуу/ажыратуу тез.
      • Vector: Эскирген синхрондоштурулган ArrayList эквиваленти.
      • Stack: Vectorтин подкласс, стекти (LIFO) ишке ашырат.
    • Set үчүн:

      • HashSet: Хеш таблицасына негизделген ишке ашыруу. Элементтердин тартибин кепилдебейт.
      • LinkedHashSet: Хеш таблицасы жана байланышкан тизмекке негизделген ишке ашыруу. Киргизүүнүн тартибин сактайт.
      • TreeSet: Кызыл-кара даракка негизделген ишке ашыруу. Элементтер өсүүчү тартипте сорттолгон.
    • Map үчүн:

      • HashMap: Хеш таблицасына негизделген ишке ашыруу. Ключ-баалуулук парларынын тартибин кепилдебейт.
      • Hashtable: Эскирген синхрондоштурулган HashMap эквиваленти.
      • LinkedHashMap: Хеш таблицасы жана байланышкан тизмекке негизделген ишке ашыруу. Киргизүүнүн тартибин сактайт.
      • TreeMap: Кызыл-кара даракка негизделген ишке ашыруу. Ключ-баалуулук парлары клучтар боюнча сорттолгон.
    • Queue үчүн:

      • PriorityQueue: Приоритеттүү кезек. Элементтер алардын табигый тартиби же салыштыргыч боюнча чыгарыла турган.
      • ArrayDeque: Массивке негизделген эки тараптуу кезек.
  • Колдонмолор:

    • Collections: Коллекциялар менен иштөө үчүн статикалык методдорду камсыздайт (сорттоо, издөө, синхрондоо жана башка).
// ArrayList колдонуу мисалы
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
System.out.println(names.get(0)); // Alice
// HashSet колдонуу мисалы
Set<Integer> numbers = new HashSet<>();
numbers.add(1);
numbers.add(2);
numbers.add(1); // Кайталаган элемент кошулбайт
System.out.println(numbers.size()); // 2
// HashMap колдонуу мисалы
Map<String, Integer> ages = new HashMap<>();
ages.put("Alice", 30);
ages.put("Bob", 25);
System.out.println(ages.get("Alice")); // 30
// PriorityQueue колдонуу мисалы
Queue<Integer> priorityQueue = new PriorityQueue<>();
priorityQueue.add(3);
priorityQueue.add(1);
priorityQueue.add(2);
System.out.println(priorityQueue.poll()); // 1 (эң төмөнкү приоритет)