Java 集合框架是統一表示和操作集合的架構,位於 java.util 包,包含接口、實現類、算法。本文梳理頂層接口體系與核心特點。
Iterable (interface)
└── iterator() : Iterator
Collection (interface) extends Iterable
├── size(), isEmpty(), contains(), add(), remove(), clear(), toArray(), iterator()
├── List (interface) // 有序、可重複
│ ├── ArrayList, LinkedList, Vector, Stack
├── Set (interface) // 無序、不可重複
│ ├── HashSet, LinkedHashSet, TreeSet
└── Queue (interface) // 隊列、雙端隊列
├── PriorityQueue, ArrayDeque, LinkedList
Map (interface) // 鍵值對、Key 不重複
├── HashMap, LinkedHashMap, TreeMap, Hashtable, ConcurrentHashMap
| 接口 | 特點 | 典型實現 | 適用場景 |
|---|---|---|---|
Iterable | 支持 for-each 遍歷 | 所有 Collection 子類 | 統一遍歷入口 |
Collection | 通用集合操作 | List/Set/Queue | 不關心具體結構時 |
List | 有序、索引訪問、允許重複、允許 null | ArrayList(查快)、LinkedList(增刪快) | 按序存取、需隨機訪問 |
Set | 無序、唯一、最多一個 null | HashSet(快)、LinkedHashSet(插入序)、TreeSet(排序) | 去重、集合運算 |
Queue | FIFO/優先級、雙端操作 | ArrayDeque(雙端)、PriorityQueue(優先級) | 任務調度、緩衝 |
Map | Key-Value、Key 唯一、Value 可重複 | HashMap(快)、LinkedHashMap(序)、TreeMap(排序)、ConcurrentHashMap(併發) | 鍵值映射、緩存、索引 |
Map 不繼承 Collection,無 iterator(),需通過 keySet()/values()/entrySet() 獲取視圖再遍歷。ListIterator 僅 List 支持,雙向遍歷、可修改、可獲取索引。