🌱 一、Collection 系
1️⃣ List(有序、可重复)
ArrayList
:基于数组,查询快,增删慢(尾部快)。LinkedList
:基于链表,增删快,查询慢。Vector
(老古董):线程安全,效率低,几乎淘汰。Stack
(继承自 Vector):栈结构(先进后出)。
2️⃣ Set(无序、不重复)
HashSet
:基于 Hash 表,查找快,元素无序。LinkedHashSet
:有插入顺序的 HashSet。TreeSet
:基于红黑树,自动排序(按自然顺序或 Comparator)。
3️⃣ Queue / Deque(队列 / 双端队列)
LinkedList
:也是 Queue、Deque 的实现类,支持队列操作。PriorityQueue
:带优先级的小顶堆,自动按优先级出队。ArrayDeque
:高效的双端队列实现,替代 Stack 和 LinkedList。
🌳 二、Map 系(键值对)
1️⃣ 基础 Map
HashMap
:最常用,基于哈希表,键唯一,线程不安全。LinkedHashMap
:有插入顺序的 HashMap。TreeMap
:基于红黑树,自动按 key 排序。
2️⃣ 并发 Map(多线程场景)
ConcurrentHashMap
:线程安全,高性能。Hashtable
(老古董):线程安全,但效率低。
🧠 三、特殊容器
EnumMap
:专门用来存enum
类型的 key,性能超高。WeakHashMap
:key 弱引用,适合做缓存,key 不引用时会被 GC。IdentityHashMap
:比较 key 时用==
而不是equals()
。ConcurrentSkipListMap
:并发 + 排序版的 TreeMap。
📌 四、常用总结(面试必备):
类型 | 实现类 | 特点 |
---|---|---|
List | ArrayList / LinkedList | 有序可重复 |
Set | HashSet / LinkedHashSet / TreeSet | 无序/有序不重复 |
Queue | LinkedList / PriorityQueue / ArrayDeque | 队列、优先级、双端 |
Map | HashMap / LinkedHashMap / TreeMap | 键值对 |
并发Map | ConcurrentHashMap | 多线程 |