ArrayList原始碼分析

2022-07-12 19:45:22 字數 547 閱讀 5383

方法概覽:

新增:add

刪除:remove (可以根據index和object進行刪除。分別返回值和boolean)

存在?:contains 返回boolean

獲取元素個數:size 返回int

空?:isempty 返回boolean

清空: clear 返回void

新增集合:addall

可以新增繼承collection介面的集合。或者自定義插入集合的位置。

集合是否存在?:containsall 返回boolean

刪除集合:removeall 返回boolean

arraylist執行效率高,但是不安全,是由陣列來實現資料的儲存。

區別於vector,幾乎一樣但是vector更安全,加了synchronized

主要進行擴容分析。

首先會根據選取的構造器的模式來進行初步分析。

如果是無參構造器,會進行第一次擴容擴到10。之後的每次擴容為上一次的1.5倍。

具體的分析和模式寫在了processon上面。

ArrayList原始碼分析

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

ArrayList原始碼分析

有參建構函式傳入乙個int public arraylist int capacity 如果為0則返回空陣列,否則new 乙個capacity的陣列 array capacity 0 emptyarray.object new object capacity 無參建構函式 public arrayl...

ArrayList原始碼分析

最近因為擁抱變換,所以開始無奈的面試之路。因為在集合的原始碼分析上,出了些問題,所以這段時間,好好重新理一理常用的集合原始碼。版本基於jdk1.7 毫無疑問,提到常用集合。arraylist勢必是第乙個被搬出來的,因此我們就先拿它開刀了。arraylist的初始化,只有在第一次add的時候進行new...