Фреймворк коллекций Java имеет иерархическую структуру, основанную на интерфейсах и классах. Основные элементы:
Collection: Базовый интерфейс для всех коллекций. Определяет общие методы для работы с элементами (добавление, удаление, проверка наличия и т.д.).Map: Представляет собой сопоставление между ключами и значениями. Не является подтипом Collection.Collection:
List: Упорядоченная коллекция. Позволяет хранить дубликаты и получать доступ к элементам по индексу.Set: Коллекция, не содержащая дубликатов. Не гарантирует определенный порядок элементов.Queue: Коллекция, предназначенная для хранения элементов перед обработкой. Обычно следует принципу FIFO (первым пришел — первым вышел).Deque: Двусторонняя очередь. Позволяет добавлять и удалять элементы как с начала, так и с конца.| Интерфейс | Частые реализации | Особенности |
|---|---|---|
List | ArrayList, LinkedList, Vector | ArrayList - динамический массив, быстрый доступ по индексу. LinkedList - двусвязный список, быстрые добавление/удаление в начале/конце. Vector - синхронизированный ArrayList. |
Set | HashSet, LinkedHashSet, TreeSet | HashSet - хранит элементы в хеш-таблице, быстрые поиск/добавление/удаление. LinkedHashSet - как HashSet, но сохраняет порядок добавления. TreeSet - хранит элементы в отсортированном порядке (красно-черное дерево). |
Queue | LinkedList, ArrayDeque, PriorityQueue | LinkedList - может использоваться как очередь. ArrayDeque - эффективная реализация Deque, может использоваться как очередь или стек. PriorityQueue - элементы обрабатываются на основе приоритета. |
Deque | ArrayDeque, LinkedList | ArrayDeque - предпочтительный для использования как стек/очередь. LinkedList - может использоваться как Deque. |
Map:
SortedMap: Мап с ключами, отсортированными в естественном порядке или с использованием компаратора.NavigableMap: Расширяет SortedMap, предоставляя методы для навигации по записям (например, получения ближайшей записи).Map:| Интерфейс | Частые реализации | Особенности |
|---|---|---|
Map | HashMap, LinkedHashMap, TreeMap, Hashtable | HashMap - хранит записи в хеш-таблице, быстрые операции. LinkedHashMap - как HashMap, но сохраняет порядок добавления. TreeMap - хранит записи в отсортированном по ключам порядке (красно-черное дерево). Hashtable - синхронизированный HashMap (устаревший). |
SortedMap | TreeMap | Гарантирует отсортированность записей по ключам. |
NavigableMap | TreeMap | Предоставляет методы для навигации по отсортированным ключам. |
Collections: Предоставляет статические методы для работы с коллекциями (сортировка, поиск, синхронизация и т.д.).Arrays: Предоставляет статические методы для работы с массивами, включая преобразование массивов в коллекции и наоборот.Структура позволяет выбирать наиболее подходящие типы коллекций для конкретных задач, основываясь на требованиях к порядку элементов, возможности дублирования, производительности операций и необходимости синхронизации.