List实现类ArrayList
public class ArrayList<E> implements List<E> {
Object[] objs;
private static final int DEFAULT_CAPACITY = 10;
private int size = 0;
public ArrayList() {
objs = new Object[DEFAULT_CAPACITY];
}
public void add(E e) {
if (size >= objs.length) {
Object[] newObjs = new Object[objs.length + DEFAULT_CAPACITY];
System.arraycopy(objs, 0, newObjs, 0, objs.length);
objs = newObjs;
}
objs[size++] = e;
}
public int size() {
return size;
}
public E remove(int index) {
if (index >= size)
throw new RuntimeException("index out of bounds");
E oldValue = (E) objs[index];
int numMoved = size - index - 1;
if (numMoved > 0) {
System.arraycopy(objs, index + 1, objs, index,numMoved);
}
objs[--size] = null;
return oldValue;
}
public Iterator<E> iterator() {
return new ArrayIterator();
}
private class ArrayIterator implements Iterator {
int index = 0;
public boolean hasNext() {
if (index == size) {
return false;
}
return true;
}
public Object next() {
return objs[index++];
}
public void remove() {
ArrayList.this.remove(index);
}
}
}