Назад к вопросам
Junior
83
questionbank
Какие коллекции существуют в Java?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
В Java существуют следующие основные интерфейсы коллекций, входящие в Java Collections Framework:
-
Collection: Базовый интерфейс, определяющий общие операции над группами объектов. От него наследуются под-интерфейсы:List: Упорядоченная коллекция (sequence). Элементы могут повторяться. Поддерживает доступ по индексу.ArrayList: Регулируемый массив. Хорош для быстрого доступа по индексу и добавления в конец. Медленный для вставки/удаления в середине.LinkedList: Двусвязный список. Хорош для вставки/удаления в начале или в конце. Медленный для доступа по индексу.Vector: Синхронизированная версияArrayList. Считается устаревшим.Stack: Наследует отVector, реализует поведение стека (LIFO).
Set: Коллекция, содержащая только уникальные элементы. Не имеет гарантированного порядка.HashSet: Реализуется с помощью хэш-таблицы. Самый быстрый для операций добавления, удаления и проверки наличия. Не гарантирует порядок.LinkedHashSet: Реализуется как хэш-таблица + связный список. Гарантирует порядок вставки.TreeSet: Реализуется с помощью красно-черного дерева. Хранит элементы в отсортированном порядке. Медленнее, чемHashSet, но быстрее, чемLinkedHashSetдля поиска диапазонов.
Queue: Коллекция, разработанная для хранения элементов перед обработкой (FIFO - First-In, First-Out).PriorityQueue: Элементы хранятся в соответствии с их естественным порядком или компаратором. Извлекается наивысший приоритет.Deque: (Double Ended Queue) Поддерживает вставку и удаление элементов с обоих концов.ArrayDeque: Реализация Deque на основе массива. Более эффективен, чемLinkedListв качестве очереди/стека.
-
Map: Коллекция, которая хранит пары ключ-значение. Ключи уникальны.HashMap: Реализуется с помощью хэш-таблицы. Самый быстрый для операций добавления, удаления и проверки наличия. Не гарантирует порядок ключей.LinkedHashMap: Реализуется как хэш-таблица + связный список. Гарантирует порядок вставки или порядок доступа.TreeMap: Реализуется с помощью красно-черного дерева. Хранит пары ключ-значение в отсортированном порядке по ключам. Медленнее, чемHashMap.HashTable: Синхронизированная версияHashMap. Считается устаревшей.
Также существуют устаревшие классы, не входящие в JCF, но иногда встречающиеся:
VectorStackHashtableEnumeration(интерфейс)