1,上周末我們一起分析了ArrayList的源碼並進行了一些總結,因為最近在看Collection這一塊的東西,下面的圖也是大致的總結了Collection里面重要的接口和類,如果沒有意外的話后面基本上每一個都會和大家一起學習學習,所以今天也就和大家一起來看看LinkedList ...
前言: ArrayList底層是依靠數組實現的,而LinkedList的實現是含前驅后繼節點的雙向列表。平時刷題時會經常使用到這兩個集合類,這兩者的區別在我眼中主要是ArrayList讀取節點平均時間復雜度是O 級別的,插入刪除節點是O n LinkedList讀取節點時間復雜度是O n ,插入節點是O 。 本文記錄我對jdk . 下的ArrayList和LinkedList源碼中主要內容的學習。 ...
2018-07-08 01:34 0 807 推薦指數:
1,上周末我們一起分析了ArrayList的源碼並進行了一些總結,因為最近在看Collection這一塊的東西,下面的圖也是大致的總結了Collection里面重要的接口和類,如果沒有意外的話后面基本上每一個都會和大家一起學習學習,所以今天也就和大家一起來看看LinkedList ...
1,前言 很久沒有寫博客了,很想念大家,18年都快過完了,才開始寫第一篇,爭取后面每周寫點,權當是記錄,因為最近在看JDK的Collection,而且ArrayList源碼這一塊也經常被面試官問道,所以今天也就和大家一起來總結一下 2,源碼解讀 當我們一般提到ArrayList的話 ...
一、前言 在分析了ArrayList了之后,緊接着必須要分析它的同胞兄弟:LinkedList,LinkedList與ArrayList在底層的實現上有所不同,其實,只要我們有數據結構的基礎,在分析源碼的時候就會很簡單,下面進入正題,LinkedList源碼分析。 二、LinkedList ...
JDK 1.8 HashMap是數組+鏈表+紅黑樹實現的,在閱讀HashMap的源碼之前先來回顧一下大學課本數據結構中的哈希表和紅黑樹。 什么是哈希表? 在存儲結構中,關鍵值key通過一種關系f和唯一的存儲位置相對應,關系f即哈希函數,Hash(k)=f(k)。按這個思想建立的表就是哈希 ...
一、前言 分析了Map中主要的類之后,下面我們來分析Collection下面幾種常見的類,如ArrayList、LinkedList、HashSet、TreeSet等。下面通過JDK源碼來一起分析ArrayList底層是如何實現的。(PS:把JVM看完了之后終於可以有成片的時間來閱讀源碼 ...
上一篇博客我們介紹了List集合的一種典型實現 ArrayList,我們知道 ArrayList 是由數組構成的,本篇博客我們介紹 List 集合的另一種典型實現 LinkedList,這是一個由鏈表構成的數組,關於鏈表的介紹,在這篇博客中 我們也詳細介紹過,本篇博客我們將介紹 ...
關於 JDK 的集合類的整體介紹可以看這張圖,本篇博客我們不系統的介紹整個集合的構造,重點是介紹 ArrayList 類是如何實現的。 1、ArrayList 定義 ArrayList 是一個用數組實現的集合,支持隨機訪問,元素有序且可以重復。 public class ...
一、概述 1、介紹 ArrayList元素是有序的,可重復。線程不安全的。底層維護一個 Object 數組。 JDK1.7:ArrayList像餓漢式,默認初始長度直接創建一個容量為 10 的數組。 JDK1.8:ArrayList像懶漢式,默認一開始創建一個長度為 0 的數組,當添加 ...