目錄

(一)一起學 Java Collections Framework 源碼之 概述

(二)一起學 Java Collections Framework 源碼之 AbstractCollection

 

JDK 中很多類 LZ 已經使用了無數次,但認認真真從源碼級研究過其原理的還只占少數,雖然從網上看過無數篇講解 Java 集合框架中各個類原理的文章,但從未看過源碼的 LZ 總有一種道聽途說的感覺。于是 LZ 決定將 JDK 中常用的模塊逐個深入到源碼中一探究竟,并將學習過程記錄下來與大家分享。

首先對 Java 集合框架(JCF, Java Collections Framework)有一個整體的認識,來看圖1。

大數據培訓,云培訓,數據挖掘培訓,云計算培訓,高端軟件開發(fā)培訓,項目經理培訓

圖1 Java 集合框架圖(圖片來源于網絡)

從 圖1 可以看出來,JCF 分為兩條主線,一條是以 java.util.Collection 接口為頂級接口的線性表結構,另一條是以 java.util.Map 為頂級接口的鍵值(K-V)映射結構。

 

一、Collection

Collection 接口下分為 List(序列)、Set(去重序列)和 Queue(隊列),實現了此接口的數據結構都是線性的。

 

1.List

List 是有序 collection。用戶可以精確控制每一個元素的位置,并可以像數組一樣通過索引(下標)來訪問元素。ArrayList、LinkedList、Vector、Stack 均實現了此接口,因此它們都是有序的數據結構。

1) ArrayList 是使用數組實現可變長度有序的集合,它允許包含 null 元素,并且不是同步的(is not sy