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

JDK 1.6 集合框架 UML 圖譜:一張圖看懂 Collection 體系,告別盲目選型

     編輯:Java 相關知識

JDK 1.6 集合框架結構清晰,掌握核心介面與實現類的繼承/實現關係,能讓你在業務場景中精準選型,避免濫用 Vector、Hashtable 等舊類。

核心體系速覽(配合官方 UML 圖)

Set 族系

  • HashSet:無序、唯一、非線程安全,基於 HashMap,O(1) 查找。
  • LinkedHashSet:維護插入順序,適合「去重且保序」場景。
  • TreeSet:有序(自然序/比較器),基於紅黑樹,O(log n)。
  • EnumSet:枚舉專用,位向量實現,極致高效。

Set UML

List 族系

  • ArrayList:動態數組,隨機訪問快,擴容代價大,**首選**。
  • LinkedList:雙向鏈表,首尾增刪 O(1),隨機訪問 O(n),適合佇列/棧。
  • 不再推薦 Vector:同步開銷大,單線程用 ArrayList,多線程用 Collections.synchronizedList 或 CopyOnWriteArrayList。

List UML

Map 族系

  • HashMap:主力實現,JDK 8+ 鏈表轉紅黑樹抗攻擊。
  • LinkedHashMap:保序(插入序/訪問序),LRU 快取首選。
  • TreeMap:有序鍵,範圍查詢利器。
  • WeakHashMap:鍵弱引用,適合緩存場景。
  • IdentityHashMap:用 == 比較鍵,特殊用途。
  • 棄用 Hashtable:同步粒度粗,改用 ConcurrentHashMap。

Map UML

Queue/Deque 族系

  • PriorityQueue:優先級佇列,堆實現。
  • ArrayDeque:雙端佇列,數組循環,比 LinkedList 更快,無容量限制。
  • ConcurrentLinkedQueue:無鎖佇列,高併發生產消費。
  • BlockingQueue 系列:ArrayBlockingQueue、LinkedBlockingQueue、SynchronousQueue、DelayQueue 等,線程協調利器。

Queue UML

選型決策表(保存備查)

場景推薦類避坑提示
去重、集合運算HashSet需有序用 LinkedHashSet/TreeSet
頻繁首尾操作、佇列/棧ArrayDeque / LinkedList隨機訪問用 ArrayList
鍵值存儲、高併發ConcurrentHashMap勿用 Hashtable/同步 HashMap
鍵需排序、範圍查詢TreeMap大數據量考慮 B+ 樹外部庫
緩存、鍵可回收WeakHashMap非弱引用場景勿用
生產者消費者BlockingQueue 子類根據有界/無界、延遲選型

內化這張圖譜與決策表,集合選型不再靠猜,代碼質量與性能雙提升。

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