首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 集合框架核心知識體系總結

     編輯:Java 相關知識

Collection vs Collections

  • Collection:頂層集合介面,定義通用操作(add、remove、iterator 等),List、Set、Queue 繼承它。
  • Collections:工具類(全靜態方法),提供排序、查找、同步包裝、不可修改視圖等輔助功能,**不可實例化**。

Map 與 Collection 關係

無繼承關係。
Collection 存儲「單一對象」序列;
Map 存儲「鍵值對」映射。

Hashtable vs HashMap 核心差異

維度HashtableHashMap
線程安全同步(方法級鎖)非同步(需手動同步或用 ConcurrentHashMap)
Null 鍵/值不允許允許(一個 null key,多個 null value)
遍歷方式EnumerationIterator
hash 計算直接用 key.hashCode()擾動函數重新計算,& (n-1) 替代取模
默認容量/擴容11,old*2+116(2 的冪),old*2
推薦程度過時,不推薦首選

集合框架完整體系圖

Collection
├─ List (有序、可重複、可為 null)
│   ├─ ArrayList (非同步、數組、查快)
│   ├─ LinkedList (非同步、雙向鏈表、增刪快)
│   ├─ Vector (同步、數組、性能差)
│   └─ Stack (Vector 子類)
├─ Set (無序、不可重複、最多一個 null)
│   ├─ HashSet (基於 HashMap)
│   │   └─ LinkedHashSet (維護插入順序)
│   └─ SortedSet
│       └─ TreeSet (紅黑樹、有序)
└─ Queue
    └─ Deque
        ├─ ArrayDeque (推薦)
        └─ LinkedList

Map (無序、鍵唯一)
├─ Hashtable (同步、過時)
├─ HashMap (非同步、首選、允許 null)
│   └─ LinkedHashMap (維護插入/訪問順序)
├─ WeakHashMap (Key 弱引用、GC 可回收)
└─ SortedMap
    └─ TreeMap (紅黑樹、有序)

核心選型口訣

  • **頻繁查詢、少增刪** → ArrayList / HashMap / HashSet
  • **頻繁增刪、少查詢** → LinkedList / LinkedHashMap / LinkedHashSet
  • **需要有序** → TreeSet / TreeMap / LinkedHashSet / LinkedHashMap
  • **多線程環境** → ConcurrentHashMap / CopyOnWriteArrayList / Collections.synchronizedXxx()
  • **Key 可被 GC 回收** → WeakHashMap

equals() / hashCode() 契約(重中之重)

  • 相等對象 **必須** 有相等 hashCode()
  • 覆寫 equals() **必須** 覆寫 hashCode()
  • 用作 Set 元素或 Map Key 的自定義類,**強制** 正確實現雙方法

Iterator 遍歷模式

Iterator<E> it = collection.iterator();
while (it.hasNext()) {
    E e = it.next();
    // 安全刪除:it.remove(); // 僅可調用一次 per next()
}

ListIterator 額外支援雙向遍歷、索引定位、添加/修改。

總結

Java 集合框架核心在於 介面與實現分離、數據結構特性選型、equals/hashCode 契約。掌握上述體系圖、差異表、選型口訣,即可應對 90% 實務場景。面試高頻考點:HashMap 擴容/紅黑樹轉換、ConcurrentHashMap 分段鎖/CAS、ArrayList vs LinkedList、HashSet 去重原理。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved