package xqfGit.dataStructure; import java.util.Arrays; public class ArrayList implements List { private int size = 0; private Object[] elementData = new Object[100]; public void add(Object o){ if(this.size >= elementData.length){ elementData = Arrays.copyOf(elementData, size+1); elementData[size] = o; size++; } else{ elementData[size-1] = o; size++; } } public void add(int index, Object o){ if(index<0 || index>elementData.length){ throw new ArrayIndexOutOfBoundsException("OutOfBounds"); } else{ System.arraycopy(elementData, index, elementData, index+1, elementData.length+1); elementData[index] = o; size++; } } public Object get(int index){ if(index<0 || index>elementData.length){ throw new ArrayIndexOutOfBoundsException("OutOfBounds"); } else{ return elementData[index]; } } public Object remove(int index){ if(index<0 || index>elementData.length){ throw new ArrayIndexOutOfBoundsException("OutOfBounds"); } else{ Object reObject = elementData[index]; System.arraycopy(elementData, index+1, elementData, index, elementData.length-1); size--; return reObject; } } public int size(){ if(this.size < elementData.length){ return size; }else{ elementData = Arrays.copyOf(elementData, size); return size; } } public Iterator iterator(){ return null; } }