原文:【JDK1.8】JDK1.8集合源碼閱讀——ArrayList

一 前言 在前面幾篇,我們已經學習了常見了Map,下面開始閱讀實現Collection接口的常見的實現類。在有了之前源碼的鋪墊之后,我們后面的閱讀之路將會變得簡單很多,因為很多Collection的結構與Map的類似,甚至有不少是直接用了Map里的方法。接下來讓我們一起來看一下ArrayList的源碼。 二 ArrayList結構概覽 顧名思義,ArrayList的結構實際就是一個Object 。 ...

2017-12-22 09:54 0 1161 推薦指數:

查看詳情

JDK1.8JDK1.8集合源碼閱讀——HashMap

一、前言 筆者之前看過一篇關於jdk1.8的HashMap源碼分析,作者對里面的解讀很到位,將代碼里關鍵的地方都說了一遍,值得推薦。筆者也會順着他的順序來閱讀一遍,除了基礎的方法外,還添加了很多其他補充內容。 二、HashMap結構概覽 以下是HashMap的數據結構: 不同於之前 ...

Wed Oct 25 17:14:00 CST 2017 2 3591
JDK1.8JDK1.8集合源碼閱讀——總章

一、前言   今天開始閱讀jdk1.8集合部分,平時在寫項目的時候,用到的最多的部分可能就是Java的集合框架,通過閱讀集合框架源碼,了解其內部的數據結構實現,能夠深入理解各個集合的性能特性,並且能夠幫助自己在今后的開發中避免犯一些使用錯誤。另外筆者自己也是摸着石頭過河,如果有描述不當的地方 ...

Sun Oct 15 05:24:00 CST 2017 0 3691
JDK1.8JDK1.8集合源碼閱讀——TreeMap(一)

一、前言 在前面兩篇隨筆中,我們提到過,當HashMap的桶過大的時候,會自動將鏈表轉化成紅黑樹結構,當時一筆帶過,因為我們將留在本章中,針對TreeMap進行詳細的了解。 二、TreeMap ...

Thu Nov 23 00:15:00 CST 2017 0 1085
JDK1.8JDK1.8集合源碼閱讀——Set匯總

一、前言 這一篇里,我將對HashSet、LinkedHashSet、TreeSet進行匯總分析,並不打算一一進行詳細介紹,因為JDK對Set的實現進行了取巧。我們都知道Set不允許出現相同的對象,而Map也同樣不允許有兩個相同的Key(出現相同的時候,就執行更新操作)。所以Set里的實現 ...

Sun Feb 04 19:19:00 CST 2018 0 1976
JDK1.8JDK1.8集合源碼閱讀——LinkedHashMap

一、前言 在上一篇隨筆中,我們分析了HashMap的源碼,里面涉及到了3個鈎子函數,用來預設給子類——LinkedHashMap的調用,所以趁熱打鐵,今天我們來一起看一下它的源碼吧。 二、LinkedHashMap的結構與繼承關系 ### 2.1 LinkedHashMap ...

Sun Nov 05 20:10:00 CST 2017 0 3204
JDK1.8JDK1.8集合源碼閱讀——TreeMap(二)

一、前言 在前一篇博客中,我們對TreeMap的繼承關系進行了分析,在這一篇里,我們將分析TreeMap的數據結構,深入理解它的排序能力是如何實現的。這一節要有一定的數據結構基礎,在閱讀下面的之前,推薦大家先看一下:《算法4》深入理解紅黑樹。(個人比較喜歡算法四這里介紹的紅黑樹實現:從2-3樹 ...

Fri Dec 01 19:01:00 CST 2017 2 795
集合框架】JDK1.8源碼分析之ArrayList(六)

一、前言   分析了Map中主要的類之后,下面我們來分析Collection下面幾種常見的類,如ArrayList、LinkedList、HashSet、TreeSet等。下面通過JDK源碼來一起分析ArrayList底層是如何實現的。(PS:把JVM看完了之后終於可以有成片的時間來閱讀源碼 ...

Wed Mar 23 04:37:00 CST 2016 1 12364
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM