天天看點

拆行解碼 Java 集合源碼之總覽

Java 集合源碼解析系列:

  • 拆行解碼 Java 集合源碼之總覽
  • 拆行解碼 Java 集合源碼之 Collection 的三大體系
  • 拆行解碼 Java 集合源碼之疊代器
  • 拆行解碼 Java 集合源碼之 ArrayList
  • 拆行解碼 Java 集合源碼之 LinkedList
  • 拆行解碼 Java 集合源碼之 HashMap
  • 拆行解碼 Java 集合源碼之 Hashtable
  • 拆行解碼 Java 集合源碼之 LinkedHashMap
  • 拆行解碼 Java 集合源碼之 PriorityQueue
  • 拆行解碼 Java 集合源碼之 ArrayDeque

集合總覽

Collection

Map

是 Java 集合最頂層的接口或者概念,無論是集合包還是并發包,都基于此。

核心特點:

  • 用于存放對象的容器;
  • 可變長度,自動擴容;
  • 不可存儲基本類型。
拆行解碼 Java 集合源碼之總覽

在 Collection 之下,又分為幾類:

  • Set:是否有序,看具體實作。元素唯一,判斷依據:HashCode、Equals
  • List:有序集合,元素不唯一。
  • Queue:不唯一,先進先出
  • Stack:不唯一,先進後出

List、Set 可以操作集合中任意位置的元素;

List 可以精确控制插入的位置,可以通過索引值通路元素。

Queue 和 Stack 隻能操作指定位置的,比如 Queue 隻能操作隊頭隊尾、Stack 隻能操作棧頂。

Map 的特性主要是 Key 位置,支援高效搜尋。

帶 Tree 字首的,支援元素的有序,比如 TreeSet、TreeMap。

帶 Linked 底層都是支援連結清單,支援資料插入有序性和周遊的高效、穩定。

帶 Hash 則底層以哈希表為結果,注 HashSet 底層以 HashMap 為實作。