Java 集合包原始碼分析

weixin_33782386發表於2017-03-26

集合包是 Java 最常用的包,它最常用的有 Collection 和 Map 兩個介面的實現類,Collection 用於存放多個單物件,Map 用於存放 Key-Value 形式的鍵值對。
  Collection 中最常用的又分為兩種型別的介面:List 和 Set,兩者最明顯的差別為 List 支援放入重複的物件,而 Set 不支援。List 介面常用的實現類有:ArrayList、LinkedList、Vector 及 Stack;Set 介面常用的實現類有:HashSet、TreeSet,對於 Collection 的實現類而言,要重點掌握的為以下幾點:

  • Collection 的建立
      對應的為 Collection 實現類的構造器,需要掌握在構造器方法中 Collection 的實現類都做了些什麼。
  • 往 Collection 中增加物件
      對應的為 Collection 中的 add(E) 方法,往 Collection 中增加物件時 Collection 的實現方式決定了此方法的效能。
  • 刪除 Collection 中的物件
      對應的為 Collection 中的 remove(E) 方法,實現類的實現方式決定了此方法的效能。
  • 獲取 Collection 中的單個物件
      對應的為 Collection 中的 get(int index) 方法,實現類的實現方式決定了此方法的效能。
  • 遍歷 Collection 中的物件
      對應的是通過 Collection 的 iterator 方法獲取迭代器,進而遍歷。
  • 判斷物件是否存在於 Collection 中
      對應的是 Collection 中的 contains(E) 方法,實現類的實現方式決定了此方法的效能。
  • Collection 中物件的排序
      如何對 Collection 中物件合理地排序也是使用 Collection 物件時經常要考慮的問題。

本系列文章所描述的所有類或介面都是基於 JDK 1.7的原始碼,在其它 JDK 的實現方式中可能會有所不同。

集合包系列一 —— ArrayLis
集合包系列二 —— LinkedList
集合包系列三 —— Vector
集合包系列四 —— Stack
集合包系列五 —— HashSet
集合包系列六 —— TreeSet
集合包系列七 —— HashMap
集合包系列八 —— TreeMap

相關文章