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

Java 集合框架繼承體系完整圖譜

     編輯:Java 綜合教學

Java 集合框架繼承體系完整圖譜

Collection 與 Map 兩大根介面下的完整繼承/實現關係圖,含 JDK 8 標準實現類。

Collection 體系

Collection
├── List (有序、可重複)
│   ├── ArrayList (動態陣列、隨機存取快)
│   ├── LinkedList (雙向鏈表、首尾增刪快、實作 Deque)
│   ├── Vector (同步、舊版遺留)
│   └── Stack (Vector 子類、後進先出、不建議使用、改用 ArrayDeque)
└── Set (無序、不可重複)
    ├── HashSet (HashMap 底層、O(1) 查找)
    ├── LinkedHashSet (維護插入順序、雙向鏈表 + HashMap)
    └── TreeSet (紅黑樹、有序、O(log n)、實作 NavigableSet)

Queue (佇列)
└── Deque (雙端佇列)
    ├── ArrayDeque (循環陣列、高效能、非同步、首選實現)
    ├── LinkedList (同時實作 List + Deque)
    └── PriorityQueue (堆、優先級排序)

Map 體系

Map
├── HashMap (雜湊表、非同步、允許 null key/value)
├── LinkedHashMap (維護插入/存取順序、雙向鏈表)
├── Hashtable (同步、不允許 null、舊版遺留)
├── Properties (Hashtable 子類、鍵值皆 String、配置檔專用)
├── TreeMap (紅黑樹、鍵有序、實作 NavigableMap)
└── ConcurrentHashMap (分段鎖/CAS、高併發、JDK8+ 推薦)

核心介面方法速查

介面核心方法特徵
Collectionadd, remove, contains, size, isEmpty, iterator, toArray單列集合根介面
Listget, set, add(index, e), remove(index), indexOf, subList索引存取、可重複
Set(繼承 Collection) 無額外方法唯一性、equals/hashCode 判斷
Queueoffer, poll, peek, elementFIFO、雙端擴展見 Deque
Mapput, get, remove, containsKey, keySet, values, entrySet鍵值對、鍵唯一

常見選型口訣

  • 要順序、要重複 → ArrayList (預設首選)
  • 要唯一、查找快 → HashSet
  • 要唯一、保插入序 → LinkedHashSet
  • 要唯一、要排序 → TreeSet
  • 鍵值對、查找快 → HashMap
  • 鍵值對、保插入序 → LinkedHashMap
  • 鍵值對、要排序 → TreeMap
  • 高併發 Map → ConcurrentHashMap
  • 高併發 Queue → ConcurrentLinkedQueue / ArrayBlockingQueue
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved