ArrayList原始碼 有待補充

2021-10-06 01:37:02 字數 1907 閱讀 6249

從原始碼中可以看出

arraylist 初始化容量為 10

擴容: add(e e) 原大小的 1.5 倍 待補充

進入list 可以看到 list有4個特有方法 均是通過 下標 進行操作 remove 返回刪除元素的value

另外的 add 跟 remove 是實現於 collection 返回值均為boolean

;// list 特有方法

list.

add(5,

"7")

; string remove = list.

remove(5

);system.out.

println

(remove)

;對於集合操作的api基本都是來自於 collection

最大的是 iterable 提供了對集合的遍歷 方式

迭代器

// 通過迭代器 迭代器的底層是增強for

iterator

it = list.

iterator()

;while

(it.

hasnext()

)}

foreach

//  lamada表示式簡寫

list.

foreach

(s -

> system.out.

println

(s))

;

spliterator 平行迭代器 顧名思義就是多執行緒進行遍歷 其原理就是多個執行緒共享同乙個list(位址相同) 通過一定的技術將其下表進行分段 每一段執行緒處理一部分 故不存在多執行緒的問題

之後單獨扒一下這個新特性的執行原理。

system.out.

println

("-------平行迭代器---------");

//平行迭代器

spliterator

sit = list.

spliterator()

; sit.

foreachremaining

(s->);

}

筆者為了提公升自己 從扒原始碼開始 有問題的地方望大佬們賜教。

ArrayList原始碼分析

arraylist是平時使用很多的乙個類,趁有時間,我也閱讀以下原始碼,以幫助自己加深理解。類的層次結構這裡就不列出了,主要分析一下原始碼部分,屬性部分 protected transient int modcount 0 這個屬性是從abstractlist繼承過來的,每次arraylist進行結...

ArrayList原始碼剖析

建構函式 有3個建構函式 1 在jdk原始碼中arraylist無參的建構函式,預設初始化大小是10 2 帶有指定大小引數的建構函式 3 帶有集合引數的建構函式 一 確定arrarlist的容量 1 若arraylist的容量不足以容納當前的全部元素,設定新的容量 原始容量 3 2 1。2 如果擴容...

ArrayList原始碼理解

與linkedlist原始碼理解放在一起查閱,效果更好 對隊成員變數的分析,可以知道arraylist的資料結構 對add 方法的分析,可以得知arraylist新增資料的效率不高 對get 方法的分析,可以看出arraylist查詢的效率非常高 對remove 方法的分析,可以了解到arrayli...