ArrayList底層分析

2021-10-01 13:33:03 字數 577 閱讀 6045

arraylist實現於list、randomaccess介面。可以插入空資料,也支援隨機訪問。相當於動態陣列,其中最重要的兩個屬性分別是:elementdata,以及size大小。在呼叫add()方法的時候:

public boolean add(e e)
如果是呼叫add(index,e)在指定位置新增的話:

public void add(int index, e element)
其實擴容最終呼叫的**:

private void grow(int mincapacity)
也是乙個陣列複製的過程。由此可見arraylist的主要消耗是陣列擴容以及在指定位置新增資料,在日常使用時最好是指定大小,儘量減少擴容。更減少在指定位置插入資料的操作。

總結一下arraylist的底層實現:通過grow()進行擴容,所謂的動態擴容就是建立乙個新的陣列(new capacity)賦予乙個新的長度,然後再覆蓋掉原先的陣列,從而實現動態擴容。

ArrayList集合的底層分析

arraylist集合的底層是動態陣列的資料結構,如果我們新增了乙個預設的無參建構函式,在新增時,陣列會將預設的陣列長度變為10。若只是剛剛建立集合物件,那麼這個陣列的長度為0,只有在新增時才會變為10 如果我們很確定的知道我們要儲存元素的數量,最好在宣告集合的時候傳入容量值。因為,我們如果只需要儲...

ArrayList底層實現和原理分析

今天是週末,沒什麼事就在家裡看了一下原始碼,我習慣使用jdk1.8,所以我的 全都是基於jdk1.8,好了下面是正文,今天來說說arraylist的底層實現和源 首先,集合arraylist是list的實現類,list還有兩個實現類linkedlist和vector。先說說這幾個實現類的區別吧 1....

ArrayList底層探秘

初始容量 private static final int default capacity 10 空陣列 private static final object empty elementdata 預設容量 private static final object defaultcapacity e...