Java 集合源碼解析系列:
- 拆行解碼 Java 集合源碼之總覽
- 拆行解碼 Java 集合源碼之 Collection 的三大體系
- 拆行解碼 Java 集合源碼之疊代器
- 拆行解碼 Java 集合源碼之 ArrayList
- 拆行解碼 Java 集合源碼之 LinkedList
- 拆行解碼 Java 集合源碼之 HashMap
- 拆行解碼 Java 集合源碼之 Hashtable
- 拆行解碼 Java 集合源碼之 LinkedHashMap
- 拆行解碼 Java 集合源碼之 PriorityQueue
- 拆行解碼 Java 集合源碼之 ArrayDeque
集合總覽
Collection
和
Map
是 Java 集合最頂層的接口或者概念,無論是集合包還是并發包,都基于此。
核心特點:
- 用于存放對象的容器;
- 可變長度,自動擴容;
- 不可存儲基本類型。
在 Collection 之下,又分為幾類:
- Set:是否有序,看具體實作。元素唯一,判斷依據:HashCode、Equals
- List:有序集合,元素不唯一。
- Queue:不唯一,先進先出
- Stack:不唯一,先進後出
List、Set 可以操作集合中任意位置的元素;
List 可以精确控制插入的位置,可以通過索引值通路元素。
Queue 和 Stack 隻能操作指定位置的,比如 Queue 隻能操作隊頭隊尾、Stack 隻能操作棧頂。
Map 的特性主要是 Key 位置,支援高效搜尋。
帶 Tree 字首的,支援元素的有序,比如 TreeSet、TreeMap。
帶 Linked 底層都是支援連結清單,支援資料插入有序性和周遊的高效、穩定。
帶 Hash 則底層以哈希表為結果,注 HashSet 底層以 HashMap 為實作。