ArrayList 集合詳解
阿新 • • 發佈:2018-12-11
特點:
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)
原始碼分析
remove(int i):
numMoved是要進行移位的元素個數,運用陣列拷貝進行移位
addAll(Collection <? extends E> c):
先將容器C裡面的資料轉換成陣列,然後運用陣列拷貝
從a的0號開始 拷貝到elementData的後面,拷貝a.length個
addAll(int i,Collection c):
將指定容器從i號位置開始進行新增.
求並集