ArrayList原始碼分析四

2021-10-24 20:40:31 字數 827 閱讀 8267

接下來我們來自定義乙個arraylist

package com.example.suanfademo;

public class myarraylist;

//定義常量,用於記錄集合的容量

private final int default_capacity = 10;

public myarraylist()

/*** 新增

*/public boolean add(e e)

/*** 修改

*/public e set(int index, e element)

/*** 刪除方法

* 需要移動元素

*/public e remove(int index)

/*** 獲取元素

*/public e get(int index)

public string tostring()

//建立stringbuilder

stringbuilder sb = new stringbuilder();

for (int i = 0; i < size; i++) else

}return sb.tostring();

}/**

* 擴容

*/private void ensurecapacityinternal()

//核心演算法

//size的長度是5,那麼集合元素陣列的長度是10,那麼size == 集合元素陣列的長度就擴容

if (size == elementdata.length)

}}

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...