ArrayList底層原始碼實現練習

2021-08-20 17:37:53 字數 1100 閱讀 3068

/**

* created by chengbx on 2018/5/17.

* 自己實現乙個arraylist,幫助我們更好的理解arraylist的底層結構!

* 一句話概括arraylist的底層:陣列的擴容與資料的拷貝! */

public

class

cbxarraylist

public cbxarraylist(int

initialcapacity)

catch

(exception e)

}elementdata = new

object[initialcapacity];

}public

void

add(object obj)

elementdata[size++] =obj;

}public

intsize()

public

boolean

isempty()

public object get(int

index)

//索引校驗

private

void rangecheck(int

index)

catch

(exception e) }}

public

void remove(int

index)

elementdata[--size] = null

; }

//遍歷陣列 取出與其相等(equals)的資料 刪除

public

boolean

remove(object o)

}return

true

; }

return

false

; }

//取出原陣列索引資料 將新資料賦值到對應索引位置,返回老資料

public object set(int

index,object o)

public

void add(int

index,object object)

}

ArrayList底層原始碼

arraylist的屬性 private static final int default capacity 10 預設初始容量的大小 private static final object empty elementdata 空陣列,用於有參構造時引數為零的例項 private static fi...

ArrayList底層原始碼學習

主要為add,get,set,remove,indexof,陣列擴容等內容的學習。擴容 擴容前提 size elementdata.length,也就是元素個數達到了陣列容器的長度。建立新的更大空間的 如size 2 1 陣列物件,object newarray new object size 2 ...

ArrayList原始碼分析

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