Java中Collection是单列集合根接口,下设List(有序可重复,如ArrayList、LinkedList)、Set(无序唯一,如HashSet、TreeSet)、Queue(队列操作,如ArrayDeque、PriorityQueue)三大子接口,Map不属于该体系。

Java 中 Collection 是单列集合的根接口,它不直接提供实现类,而是通过三个核心子接口来组织:**List、Set、Queue**。每个子接口定义了不同语义的数据结构行为,再由具体实现类落地。
List:有序、可重复、支持索引访问
强调元素插入顺序,允许重复,可通过下标快速定位。
- ArrayList:基于动态数组,随机访问快(O(1)),增删末尾高效,中间插入/删除较慢(需移动元素)
- LinkedList:基于双向链表,头尾增删快(O(1)),按索引查找慢(O(n));也实现了 Queue 接口,可作队列或栈使用
-
Vector:历史遗留类,线程安全但性能差,已基本被
ArrayList + Collections.synchronizedList()或CopyOnWriteArrayList替代
Set:无序、不可重复、关注唯一性
底层靠 equals() 和 hashCode() 判重,不保证遍历顺序(除非特别说明)。
- HashSet:基于 HashMap 的 key 存储,查找、添加、删除平均 O(1),无序
- LinkedHashSet:在 HashSet 基础上维护插入顺序的链表,迭代顺序与插入一致,性能略低于 HashSet
-
TreeSet:基于红黑树,自动排序(自然序或自定义 Comparator),增删查均为 O(log n),支持范围查询(如
subSet())
Queue:专注入队与出队操作
面向“先进先出”(FIFO)场景设计,部分实现也支持优先级或双端操作。
立即学习“Java免费学习笔记(深入)”;
- LinkedList:实现 Queue 接口,常用作普通队列或双端队列(Deque)
- PriorityQueue:基于小顶堆,默认按自然序或 Comparator 排序,出队总是最小(或最高优先级)元素,不保证 FIFO 遍历顺序
- ArrayDeque:基于循环数组的双端队列,比 LinkedList 更高效,推荐作为栈(push/pop)或队列(offer/poll)首选
注意:Map 不属于 Collection 体系,它是独立的双列集合根接口;Collection 仅涵盖单列数据容器。所有实现类都继承自抽象基类(如 AbstractList、AbstractSet)以复用通用逻辑,开发者通常直接使用具体实现类而非抽象类。


















