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

Java 集合框架源碼架構解析:Collection、Map 體系與核心實現原理

     編輯:Java 綜合教學

集合框架整體架構

Java 集合工具包位於 java.util,核心介面分為兩大體系:

  • Collection:單列集合,子介面 List(有序、可重複)與 Set(無序、不可重複)。
  • Map:雙列集合,鍵值對映射,Key 不可重複。

Java集合框架架構圖

Collection 體系詳解

List 介面及實現

  • ArrayList:動態陣列,查詢快(O(1)),增刪慢(需位移)。非線程安全。
  • LinkedList:雙向鏈表,增刪快(O(1)),查詢慢(O(n))。實作 Queue 介面,可作隊列/棧。
  • Vector:舊版同步化動態陣列,效能較差,已被 Collections.synchronizedList 或並發包取代。

Set 介面及實現

  • HashSet:基於 HashMap 實現,依賴 hashCode() 與 equals() 保證唯一性,無序。
  • LinkedHashSet:維護插入順序的 HashSet。
  • TreeSet:基於 TreeMap(紅黑樹),元素需實作 Comparable 或提供 Comparator,有序且唯一。

Map 體系詳解

  • HashMap:陣列+鏈表/紅黑樹(JDK 1.8+),非同步,允許 null Key/Value。
  • LinkedHashMap:維護插入或訪問順序。
  • TreeMap:紅黑樹,Key 有序,需實作 Comparable。
  • Hashtable:舊版同步 Map,不允許 null,效能低。
  • ConcurrentHashMap:分段鎖/CAS 實現高並發,首選線程安全 Map。

抽象類與適配器模式

AbstractCollection、AbstractList、AbstractSet、AbstractMap 實作介面中通用方法,具體子類只需覆寫核心方法(如 add()、get()),減少重複代碼,體現適配器模式。

迭代器與工具類

  • Iterator:通用遍歷 Collection,支援 remove()。
  • ListIterator:專用於 List,雙向遍歷、可修改、可獲取索引。
  • Enumeration:JDK 1.0 遺留,僅用於 Vector、Hashtable,功能較弱。
  • Arrays:陣列操作工具(排序、複製、轉 List)。
  • Collections:集合工具(排序、同步包裝、二分搜尋、不可變視圖)。

最佳實踐: 非多線程環境優先用 ArrayList/HashMap/HashSet;多線程環境選用 ConcurrentHashMap、CopyOnWriteArrayList 等並發包類別。

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