Sobes.tech
Junior

Koje su implementacije kolekcija u programskom jeziku Java?

sobes.tech АИ

Одговор од АИ

  • Интерфејси:

    • 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 (најниска приоритет)