ArrayList 集合詳解

2021-09-01 08:57:46 字數 1486 閱讀 5982

1.底層資料結構是陣列

2.預設陣列大小是10

3.保證了資料的有序性,按照插入順尋來儲存

4.查詢效率高,基於陣列索引來定位資料

5.集合擴容每次擴容為原大小的1.5倍.

6.集合資料可以重

trimtosize():作用是去掉預留元素的位置,記憶體緊張的時候用

ensurecapacity(int n):如果arraylist中新增大量元素,可用此方法增加效率,一次性擴容.

grow(int m):以1.5倍擴容

int oldcapacity = elementdata.length;

int newcapacity = oldcapacity+(oldcapacity >>1);

contains(object o):返回boolean值,該鍊錶中是否有o

indexof(object o):返回o在arraylist中第一次出現的位置,沒有就返回-1.

lastindexof(object o):返回o在arraylist中最後一次出現的位置,沒有就返回-1

clone():轉殖,返回arraylist,會產生新物件

get(int i):得到i號索引位置的值,先回進行rangecheck(i)

set(int i,e e):這是在i號位置用e進行replace,然後返回原來的elem.

add(e e):先會進行ensurecapacityinternal(size+1)//modcount change

add(int i,e e):先會進行rangecheck 再ensurecapacityinternal(size+1) //modcount change

nummoved是要進行移位的元素個數,運用陣列拷貝進行移位

先將容器c裡面的資料轉換成陣列,然後運用陣列拷貝

從a的0號開始 拷貝到elementdata的後面,拷貝a.length個

addall(int i,collection c):

將指定容器從i號位置開始進行新增.

Java集合 ArrayList集合

以陣列實現。節約空間,但是陣列有容量限制。超出限制時會增加50 容量,用system.arraycopy 複製到新的陣列,因此最好能給出陣列大小的預估值。預設第一次插入元素時建立大小為10 的陣列。按照陣列下標來訪問元素 get i set i,e 的效能很高,這是陣列的基本優勢。直接在陣列末尾加入...

ArrayList集合使用

arraylist 和陣列區別 集合長度可以隨意改變,型別也可以隨意的新增,但陣列不能。集合的方法 arraylist 不是乙個靜態類,所以在使用它之前應例項化該類 arraylist list new arraylist 新增元素 list.add 1 新增集合 list.addrange new...

手寫ArrayList集合

最近仔細的研究了下集合框架的原始碼,並完全手寫下來,這裡將每一步的進展記錄下來,歡迎指點。arraylist的構造器,分別為無參構造器 傳入初始大小的有參構造器 傳入乙個集合型別的有參構造器,這裡只介紹前面兩種常用的構造器。無參構造器 arraylist的底層實際就是使用陣列來實現的,我們建立乙個陣...