size:ArrayList的長度數組
構造函數以下:
利用該參數初始化該數組。
將數組的大小設置爲10,爲該數組分配內存空間。
根據Collection c初始化該ArrayList,底層使用的是System.arrayCopy方法 安全
向該List的尾部添加元素:
首先會調用ensureCapacity(size + 1)方法,檢查該List持有的數組是否已到達峯值,若是到了則擴充此數組
由代碼可知,每次擴充爲原來的一點五倍,可知該操做當容量變大的時候會嚴重形成內存空間的浪費。函數
addAll(int index, Collection<? extends E> c):
在index位置處依次添加c中的元素,同時將該index處的元素依次右移。spa
addAll(Collection<? extends E> c):
從該List的尾部依次添加c中含有的元素線程
clear():
清空該List,內部持有的數組的長度並不發生變化。設計
indexOf(Object o):
返回某元素在該List中的索引。索引
indexOf(Object o):
從該List尾部查找第一次出現該o時的索引。內存
contains(Object o):
查找該List是否包含oci
fastRemove(int index):
刪除該索引處的元素,而且使該索引後面的元素依次左移。element
get(int index):
獲取索引index處的元素。
isEmpty():
判斷該List是否爲空
remove(int index):
刪除index處的元素,同時右邊的元素左移。
remove(Object o):
先查找,再刪除。設計到數組元素的左移。
set(int index, E element):
於位置index處設置爲element
size():
返回該集合的長度
toArray():
將該集合轉化爲Object數組。
toArray(T[] a):
將該集合轉化爲特定的數組。
trimToSize():
將該數組中空的佔位符剔除,以便GC回收。
總結:
該類和Vector的機構幾乎徹底相同,該集合非線程安全。