ArrayList继承接口List,一个定长的List,可以动态的增长和缩减
内部有一个成员object数组,可以实现index索引,Object[] array;
public ArrayList(int capacity)
可以增长
private static int newCapacity(int currentCapacity)
删除一个区间的元素
protected void removeRange(int fromIndex,int toIndex)
从某个位置添加
public boolean addAll(int index, Collection collection)
LinkedList继承List,可以可以在任何位置插入和删除的List
内部有一个成员Link voidLink,可以实现向前后索引
一个静态内部类双向列表,可以指向前后的对象
private static final class Link {
ET data;
Link previous,next;
Link(ET o, Link p, Link n) {
data = o;
previous = p;
next = n;
一个静态内部类LinkIterator实现了ListIterator,复写方法建立元素之间双向索引的关系
private static final class LinkIterator implements ListIterator
int pos,expectedModCount;当前位置
final LinkedList list;
Link link,lastLink;当前元素和最后一个元素
他利用内部类Link实现了可以向前向后索引的接口ListInterator的add,remove,set,next,previous等方法,这样就可以达到索引到任意位置去添加和删除的目的。