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

Java 集合框架全景圖解:Collection、Map、迭代器、工具類核心架構與實現類詳解

     編輯:Java 程式設計入門

整體架構分層

java.util
├── Collection (接口)
│   ├── List (有序、可重複)
│   │   ├── ArrayList (動態數組、隨機訪問快)
│   │   ├── LinkedList (雙向鏈表、增刪快、實現 Deque)
│   │   ├── Vector (同步、舊版)
│   │   └── Stack (Vector 子類、LIFO)
│   └── Set (無序、不可重複)
│       ├── HashSet (HashMap 底層、O(1))
│       ├── LinkedHashSet (有序 HashSet)
│       └── TreeSet (TreeMap 底層、紅黑樹、有序)
├── Map (鍵值對、Key 不重複)
│   ├── HashMap (數組+鏈表/紅黑樹、非同步、允許 null)
│   ├── LinkedHashMap (插入/訪問順序)
│   ├── TreeMap (紅黑樹、SortedMap、Key 有序)
│   ├── Hashtable (同步、不允許 null、舊版)
│   └── WeakHashMap (弱引用 Key、GC 可回收)
├── 迭代器
│   ├── Iterator (單向、fail-fast、可 remove)
│   └── ListIterator (雙向、可 add/set、僅 List)
└── 工具類
    ├── Collections (排序、二分查找、同步包裝、不可變視圖)
    └── Arrays (數組排序、複製、比較、流轉換)

核心接口契約

抽象骨架類

  • AbstractCollection:實現除 iterator/size 外所有方法
  • AbstractList:實現 List 非隨機訪問方法,提供 listIterator
  • AbstractSet:繼承 AbstractCollection,Set 無額外方法
  • AbstractMap:實現 Map 大部分方法,子類只需實現 entrySet

選型決策樹

  1. 需鍵值對 → Map
    • 需有序 → TreeMap / LinkedHashMap
    • 高併發 → ConcurrentHashMap
    • 一般 → HashMap
  2. 需單列數據 → Collection
    • 需有序、可重複 → List
      • 隨機訪問多 → ArrayList
      • 頭尾增刪多 → LinkedList
    • 不可重複 → Set
      • 需有序 → TreeSet / LinkedHashSet
      • 一般 → HashSet

並發安全集合

接口關鍵特性典型實現
Collectionadd/remove/contains/size/iterator—
List按索引訪問 get/set/add(index)/subListArrayList, LinkedList
Set無重複、equals/hashCode 判等HashSet, TreeSet
Mapput/get/remove/keySet/entrySet/valuesHashMap, TreeMap
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
集合同步策略適用場景
Collections.synchronizedList全鎖低併發、舊代碼遷移
CopyOnWriteArrayList寫時復制讀多寫少、遍歷無鎖
ConcurrentHashMapCAS+分段鎖/節點鎖高併發 Map
ConcurrentLinkedQueueCAS 無鎖高併發隊列