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, но понякога се срещат:
VectorStackHashtableEnumeration(интерфейс)