ArrayList繼承接口List轿衔,一個定長的List,可以動態(tài)的增長和縮減
內(nèi)部有一個成員object數(shù)組,可以實(shí)現(xiàn)index索引浪谴,Object[] array;
public ArrayList(int capacity)
可以增長
private static int newCapacity(int currentCapacity)
刪除一個區(qū)間的元素
protected void removeRange(int fromIndex,int toIndex)
從某個位置添加
public boolean addAll(int index, Collection collection)
LinkedList繼承List,可以可以在任何位置插入和刪除的List
內(nèi)部有一個成員Link?voidLink开睡,可以實(shí)現(xiàn)向前后索引
一個靜態(tài)內(nèi)部類雙向列表,可以指向前后的對象
private static final class Link {
ET data;
Link?previous,next;
Link(ET o, Link p, Link n) {
data = o;
previous = p;
next = n;
一個靜態(tài)內(nèi)部類LinkIterator實(shí)現(xiàn)了ListIterator苟耻,復(fù)寫方法建立元素之間雙向索引的關(guān)系
private static final class LinkIterator implements ListIterator
int pos,expectedModCount;當(dāng)前位置
final LinkedList?list;
Link?link,lastLink;當(dāng)前元素和最后一個元素
他利用內(nèi)部類Link實(shí)現(xiàn)了可以向前向后索引的接口ListInterator的add,remove,set,next,previous等方法篇恒,這樣就可以達(dá)到索引到任意位置去添加和刪除的目的。