package liuxincourse;
import java.util.Arrays;
public class ArrayList implements List{
private int size=0;
private Object [] elementDataObjects = new Object[3];
public void add (Object o){
if (size>=elementDataObjects.length) {
elementDataObjects=Arrays.copyOf(elementDataObjects, elementDataObjects.length+50);
}
elementDataObjects[size]=o;
size++;
}
public void add (int index ,Object o){
if (index>=size||index<0) {
throw new IndexOutOfBoundsException();
}
if (size>=elementDataObjects.length) {
elementDataObjects=Arrays.copyOf(elementDataObjects, elementDataObjects.length+50);
}
System.arraycopy(elementDataObjects, index, elementDataObjects, index+1, size-index);
elementDataObjects[index]=o;
size++;
}
public Object get (int index){
if (index>=size||index<0) {
throw new IndexOutOfBoundsException();
}
return elementDataObjects[index];
}
public Object remove(int index){
if (index>=size||index<0) {
throw new IndexOutOfBoundsException();
}
Object rem=elementDataObjects[index];
System.arraycopy(elementDataObjects, index+1, elementDataObjects, index, size-index-1);
size--;
return rem;
}
public int size(){
return size;
}
// public Iterator iterator(){
//
// }
}