目錄

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

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

 

JDK 中很多類 LZ 已經(jīng)使用了無(wú)數(shù)次,但認(rèn)認(rèn)真真從源碼級(jí)研究過(guò)其原理的還只占少數(shù),雖然從網(wǎng)上看過(guò)無(wú)數(shù)篇講解 Java 集合框架中各個(gè)類原理的文章,但從未看過(guò)源碼的 LZ 總有一種道聽(tīng)途說(shuō)的感覺(jué)。于是 LZ 決定將 JDK 中常用的模塊逐個(gè)深入到源碼中一探究竟,并將學(xué)習(xí)過(guò)程記錄下來(lái)與大家分享。

首先對(duì) Java 集合框架(JCF, Java Collections Framework)有一個(gè)整體的認(rèn)識(shí),來(lái)看圖1。

大數(shù)據(jù)培訓(xùn),云培訓(xùn),數(shù)據(jù)挖掘培訓(xùn),云計(jì)算培訓(xùn),高端軟件開(kāi)發(fā)培訓(xùn),項(xiàng)目經(jīng)理培訓(xùn)

圖1 Java 集合框架圖(圖片來(lái)源于網(wǎng)絡(luò))

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

 

一、Collection

Collection 接口下分為 List(序列)、Set(去重序列)和 Queue(隊(duì)列),實(shí)現(xiàn)了此接口的數(shù)據(jù)結(jié)構(gòu)都是線性的。

 

1.List

List 是有序 collection。用戶可以精確控制每一個(gè)元素的位置,并可以像數(shù)組一樣通過(guò)索引(下標(biāo))來(lái)訪問(wèn)元素。ArrayList、LinkedList、Vector、Stack 均實(shí)現(xiàn)了此接口,因此它們都是有序的數(shù)據(jù)結(jié)構(gòu)。

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

網(wǎng)友評(píng)論