package com.coding.DataStructure;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
public abstract class ArrayList implements List {
private int size = 0;
private static final int INCREMENT = 10;
private Object[] elementData = new Object[100];
public void add(Object o) {
if ((size + 1)>= 100) {
throw new RuntimeException("数组越界异常");
}
elementData[size] = 0;
size++;
}
public void add(int index, Object o){
growLength();
System.arraycopy(elementData, index, elementData, index+1, size-index);
elementData[index] = o;
size++;
}
public Object get(int index){
return elementData[index];
}
public Object remove(int index){
if (index > size) throw new IndexOutOfBoundsException("index: "+index+", size: "+size);
Object retVal = elementData[index];
System.arraycopy(elementData, index+1, elementData, index, size-(index+1));
elementData[--size] = null;
return retVal;
}
public int size(){
return this.size;
}
public Iterator iterator(){
return null;
}
private void growLength() {
if (this.size == elementData.length) {
elementData = Arrays.copyOf(elementData, elementData.length+INCREMENT);
}
}
}