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的底層實際就是使用陣列來實現的,我們建立乙個陣...