本文系統整理 Java 集合框架中 Map 與 Set 體系的核心實現類,涵蓋特性對比、原理機制、效能調優參數與最佳實踐。
Dictionary、實作 Map,同步安全(方法加 synchronized)old * 2 + 1hashCode() 與 equals()AbstractMap,非同步,允許 一個 null Key、多個 null ValueConcurrentHashMapget() 回傳 null 不代表 key 不存在,需用 containsKey() 判斷HashMap 實作(Value 固定為 PRESENT 物件)TreeMap(紅黑樹)實作,有序(自然順序或 Comparator)Comparable 或提供 Comparator| 需求 | 推薦實現 |
|---|---|
| 高效增刪查、無序、單線程 | HashMap / HashSet |
| 高效增刪查、無序、多線程 | ConcurrentHashMap |
| Key 生命週期自動管理 | WeakHashMap |
| 有序遍歷、範圍查詢 | TreeMap / TreeSet |
| 舊代碼兼容、同步 Map | Hashtable (不推薦新代碼) |
initialCapacity 避免頻繁擴容hashCode() 與 equals(),且保持一致性ConcurrentModificationException)