В 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, но иногда встречающиеся:
VectorStackHashtable Enumeration (интерфейс)