Sobes.tech
Junior

Какви колекции съществуват в Java?

sobes.tech AI

Отговор от AI

Frameworkът за колекции на Java предоставя множество колекции за съхранение и управление на данни. Основните интерфейси и техните реализации:

  • Collection: основен интерфейс.
    • List: подредена колекция, допуска дублиране.
      • ArrayList: базирана на масив, бърз достъп по индекс, бавно вмъкване/изтриване в средата.
      • LinkedList: базирана на двусвързана листа, бързо вмъкване/изтриване, бавен достъп по индекс.
      • Vector: потокобезопасен аналог на ArrayList, остарял.
      • Stack: базирана на Vector, принцип LIFO.
    • Set: колекция от уникални елементи, без определен ред (освен SortedSet).
      • HashSet: базирана на хеш таблица, бърз достъп и вмъкване/изтриване.
      • LinkedHashSet: запазва реда на вмъкване.
      • TreeSet: съхранява елементите в сортиран ред.
    • Queue: колекция от елементи, често използвана за съхранение преди обработка във FIFO ред.
      • PriorityQueue: елементите се извличат по приоритет.
      • ArrayDeque: двустранна опашка.
    • Deque: двустранна опашка, може да добавяте и премахвате елементи от двата края.
  • Map: съхранява двойки ключ-стойност, ключовете са уникални.
    • HashMap: базирана на хеш таблица, бърз достъп по ключ.
    • LinkedHashMap: запазва реда на вмъкване или достъп.
    • TreeMap: съхранява двойки в сортиран ред по ключове.
    • Hashtable: потокобезопасен аналог на HashMap, остарял.

Потокобезопасни колекции:

  • Collections.synchronized*: обвивки върху съществуващи колекции.
  • Concurrent*: пакет java.util.concurrent, колекции с подобрена производителност в конкурентна среда.
    • ConcurrentHashMap
    • CopyOnWriteArrayList
    • ConcurrentLinkedQueue

И други по-малко разпространени колекции.