Sobes.tech
Junior

Кадом коллеҷҳо дар Java вуҷуд доранд?

sobes.tech AI

Ҷавоб аз AI

Дар Java съществуват следните основни интерфейси на колекциите, включени във Java Collections Framework:

  • Collection: Основен интерфейс, който определя общи операции върху групи от обекти. От него наследяват под-интерфейси:

    • List: Подредена колекция (последователност). Елементите могат да се повтарят. Поддържа достъп по индекс.
      • ArrayList: Регулируем масив. Добър за бърз достъп по индекс и добавяне в края. Бавен за вмъкване/изтриване в средата.
      • LinkedList: Двусвързан списък. Добър за вмъкване/изтриване в началото или края. Бавен за достъп по индекс.
      • Vector: Синхронизирана версия на ArrayList. Смята се за остаряла.
      • Stack: Наследява Vector, реализира поведение на стек (LIFO).
    • Set: Колекция, съдържаща само уникални елементи. Не гарантира ред.
      • HashSet: Реализира се чрез хеш-таблица. Най-бърз за операции по добавяне, изтриване и проверка за наличие. Не гарантира ред.
      • LinkedHashSet: Реализира се като хеш-таблица + свързан списък. Гарантира реда на вмъкване.
      • TreeSet: Реализира се чрез червено-черно дърво. Съхранява елементите в сортиран ред. По-бавен от HashSet, но по-бърз от LinkedHashSet при търсене по диапазон.
    • Queue: Колекция, предназначена за съхранение на елементи преди обработка (FIFO - първи влязъл, първи излязъл).
      • PriorityQueue: Елементите се съхраняват според естествения им ред или компаратор. Извлича се елемент с най-висок приоритет.
      • Deque: (Double Ended Queue) Поддържа вмъкване и изтриване от двата края.
        • ArrayDeque: Реализация на Deque на базата на масив. По-ефективен от LinkedList като ред/стек.
  • Map: Колекция, която съхранява двойки ключ-стойност. Ключовете са уникални.

    • HashMap: Реализира се чрез хеш-таблица. Най-бърз за операции по добавяне, изтриване и проверка за наличие. Не гарантира реда на ключовете.
    • LinkedHashMap: Реализира се като хеш-таблица + свързан списък. Гарантира реда на вмъкване или реда на достъп.
    • TreeMap: Реализира се чрез червено-черно дърво. Съхранява двойки ключ-стойност в сортиран ред по ключовете. По-бавен от HashMap.
    • HashTable: Синхронизирана версия на HashMap. Смята се за остаряла.

Съществуват и остарели класове, които не са част от JCF, но понякога се срещат:

  • Vector
  • Stack
  • Hashtable
  • Enumeration (интерфейс)