3 回答

TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個贊
add方法屬于追加方法,就是向數(shù)組的尾部增加數(shù)據(jù),但是用的是LinkList是可以頭部增加數(shù)據(jù)的,使用方法addFirst(E element)就可以了。根據(jù)你的代碼錯誤應(yīng)該是這樣的,一開始集合是長度是0,代表沒有元素存在,那么這個下標(biāo)為2的位置不存在,但是你卻要這個位置后面增加數(shù)據(jù),這樣就錯了,因?yàn)榧显谶@個時(shí)候還沒有得到系統(tǒng)為下標(biāo)為2的位置分配內(nèi)存空間,程序執(zhí)行的時(shí)候找不到這個為下標(biāo)為2的位置,就是你增加的數(shù)據(jù)找不到地方擺,這樣就錯了。一般情況下就是使用add(E element)方法就可以了,這樣add(int index, E element)方法的適合于在指定在某條數(shù)據(jù)后面追加數(shù)據(jù)(一般這條數(shù)據(jù)應(yīng)該不是最后一條),就是說在這個集合里面我的數(shù)據(jù)已經(jīng)填充好了,這個時(shí)候我要在其中的一條數(shù)據(jù)后面追加一條數(shù)據(jù),那么我就用add(int index, E element)方法去追加數(shù)據(jù),后面所存在數(shù)據(jù)就會被往后擠一個位置。

TA貢獻(xiàn)1770條經(jīng)驗(yàn) 獲得超3個贊
public void add(int index, E element) {
if (index > size || index < 0)
throw new IndexOutOfBoundsException(
"Index: "+index+", Size: "+size);
ensureCapacity(size+1); // Increments modCount!!
System.arraycopy(elementData, index, elementData, index + 1,
size - index);
elementData[index] = element;
size++;
}

TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個贊
ArrayList是數(shù)組List,它是逐次增加大小的,就是要從小到大添加元素,它維護(hù)元素的順序。
添加回答
舉報(bào)