1. 程式人生 > >Java集合類:AbstractCollection原始碼解析

Java集合類:AbstractCollection原始碼解析

一、Collection介面

  從《Java集合:整體結構》一文中我們知道所有的List和Set都繼承自Collection介面,該介面類提供了集合最基本的方法,雖然List介面和Set等都有一些自己獨有的方法,但是基本的操作類似。我們先看下Collection介面提供的方法:

  

總體上可以將Collection的方法分為以下幾大類:

1、增加(add/addAll)

2、刪除(remove/removeAll/clear/retainAll)

3、查詢(contain/containAll/iterator/size/isEmpty)

4、轉陣列(toArray/toArray(T[]))

  直接實現該介面的類只有AbstractCollection類,該類也只是一個抽象類,提供了對集合類操作的一些基本實現。List和Set的具體實現類基本上都直接或間接的繼承了該類。為了方便以後更清晰的理解這些類的實現,我們先看下AbstractCollection的實現。

二、AbstractCollection原始碼解析

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93

相關推薦

Java集合AbstractCollection原始碼解析

一、Collection介面   從《Java集合:整體結構》一文中我們知道所有的List和Set都繼承自Collection介面,該介面類提供了集合最基本的方法,雖然List介面和Set等都有一些自己獨有的方法,但是基本的操作類似。我們先看下Collectio

Java集合庫 LinkedList 原始碼解析

基於JDK 1.7,和ArrayList進行比較分析 Java已經有了ArrayList,用來存放元素,對元素的操作都很方便。為什麼還會有LinkedList呢?我們都知道ArrayList獲取元素很快,但是插入一個元素很慢,因為ArrayList底層維護的是

Java集合"隨機訪問" 的RandomAccess接口

ble java集合 .get 同時 ++ linked loop pri strac 引出RandomAccess接口 如果我們用Java做開發的話,最常用的容器之一就是List集合了,而List集合中用的較多的就是ArrayList 和 LinkedList 兩個類,這

Java集合】LinkedList原始碼分析(jdk1.8)

ArrayList和LinkedList是List介面的兩種實現,具有相同的查詢、插入、刪除操作,只是底層的實現方式不一樣。LinkedList是以雙向連結串列形式實現的集合類。 其增刪操作由於不需要移

Java集合LinkedHashMap

前言 今天繼續學習關於Map家族的另一個類 LinkedHashMap 。先說明一下,LinkedHashMap 是繼承於 HashMap 的,所以本文只針對 LinkedHashMap 的特性學習,跟HashMap 相關的一些特性就不做進一步的解析了,大家有疑

Java集合ArrayList

前言 今天學習一個Java集合類使用最多的類 ArrayList , ArrayList 繼承了 AbstractList,並實現了List 和 RandomAccess 等介面, public class ArrayList<E> extends

Java集合LinkedList

前言 上篇文裡講解了ArrayList ,它是基於List 介面來實現的,今天講解Java集合類中另一個跟List相關的集合類,叫做LinkedList 。 初識LinkedList LinkedList 是基於雙向連結串列實現的,也就是說,連結串列中任何一個

Java基礎面試題3-說說你知道的幾個Java集合list、set、queue、map

關係這張圖簡單揭示了Set、List與Map之間的相對關係。 需要說明下的是,圖中的實現並不指這麼簡單的實現,這個稍後會說到。Collection介面Collection是Java中最基本的集合介面。它描述了一組有關集合操作的方法。int Size(); //集合大小 boo

Java基礎面試題3-說說你知道的幾個Java集合list、set、map

關係 這張圖簡單揭示了Set、List與Map之間的相對關係。  需要說明下的是,圖中的實現並不指這麼簡單的實現,這個稍後會說到。 Collection介面 Collection是Java中最基本的集合介面。它描述了一組有關集合操作的方法。 int Size(); /

Java集合原始碼解析AbstractMap

目錄 引言 原始碼解析 抽象函式entrySet() 兩個集合檢視 操作方法 兩個子類 參考: 引言 今天學習一個Java集合的一個抽象類 AbstractMap ,AbstractMap 是Map介面的 實現類之一,也是HashMap、T

Java集合原始碼解析HashMap (基於JDK1.8)

目錄 前言 HashMap的資料結構 深入原始碼 兩個引數 成員變數 四個構造方法 插入資料的方法:put() 雜湊函式:hash() 動態擴容:resize() 節點樹化、紅黑樹的拆分 節點樹化

Java集合原始碼解析Vector

引言 之前的文章我們學習了一個集合類 ArrayList,今天講它的一個兄弟 Vector。 為什麼說是它兄弟呢?因為從容器的構造來說,Vector 簡直就是 ArrayList 的翻版,也是基於陣列的資料結構,不同的是,Vector的每個方法都加了 synchronized 修飾符,是執行緒安全的。 類

Java集合原始碼解析ArrayList

目錄 前言 今天學習一個Java集合類使用最多的類 ArrayList , ArrayList 繼承了 AbstractList,並實現了List 和 RandomAccess 等介面, public class ArrayList<E> extends AbstractList<E>

Java集合原始碼解析LinkedHashMap

前言 今天繼續學習關於Map家族的另一個類 LinkedHashMap 。先說明一下,LinkedHashMap 是繼承於 HashMap 的,所以本文只針對 LinkedHashMap 的特性學習,跟HashMap 相關的一些特性就不做進一步的解析了,大家有疑惑的可以看之前的博文。 深入解析 LinkedH

Java集合源碼解析AbstractList

tlist ica png 用途 access 可用 操作 map 支持 今天學習Java集合類中的一個抽象類,AbstractList。 初識AbstractList AbstractList 是一個抽象類,實現了List<E>接口,是隸屬於Java集合框架中

java 集合 底層原始碼解析,慢速更新~偏新手

我決定從java底層原始碼開始自己的部落格之旅,水平有限,很有可能寫的不對,歡迎大家指出缺點~部落格慢速保持更新! 先從java最常用的集合類開始更新吧~ java的集合類均來自於 java.util包下 java單列頂層介面 Collection 先看看該介面的定義: pub

Java集合源碼解析Vector

end 變量 處理 最後一個元素 就是 本質 它的 推薦 boolean 引言 之前的文章我們學習了一個集合類 ArrayList,今天講它的一個兄弟 Vector。 為什麽說是它兄弟呢?因為從容器的構造來說,Vector 簡直就是 ArrayList 的翻版,也是基於數組

Java集合框架之三HashMap原始碼解析 Java集合框架之三HashMap原始碼解析

Java集合框架之三:HashMap原始碼解析     版權宣告:本文為博主原創文章,轉載請註明出處,歡迎交流學習!       HashMap在我們的工作中應用的非常廣泛,在工作面試中也經常會被問到,對於這樣一個重要的集合

Java集合原始碼閱讀之AbstractCollection

private static <T> T[] finishToArray(T[] r, Iterator<?> it) { int i = r.length; while (it.hasNext()) { int cap = r.

Java集合(一)ArrayList原始碼解析

前言今天來介紹下ArrayList,在集合框架整體框架一章中,我們介紹了List介面,ArrayList繼承了AbstractList,實現了List。ArrayList在工作中經常用到,所以要弄懂這個類是極其重要的。構造圖如下:藍色線條:繼承綠色線條:介面實現正文Array