package com.coding.basic; 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; }else{ elementData[size]=o; } size++; } public void add(int index, Object o){ if(index<0||index>=this.size){ throw new ArrayIndexOutOfBoundsException("数组越界异常"); }else{ if(index<this.size){ System.arraycopy(elementData, index, elementData, index+1, size-index); elementData[index]=o; size++; }else{ elementData=Arrays.copyOf(elementData, index+1); elementData[index]=o; size=index+1; } } } public Object get(int index){ if(index<0||index>elementData.length){ throw new ArrayIndexOutOfBoundsException("数组越界异常"); } return elementData[index]; } public Object remove(int index){ if(index<0||index>=elementData.length){ throw new ArrayIndexOutOfBoundsException("数组越界异常"); }else{ Object deletedElement=elementData[index]; if(index<size){ System.arraycopy(elementData, index+1, elementData, index, size-index-1); size--; return deletedElement; }else{ System.arraycopy(elementData, index+1, elementData, index, size-index-1); return deletedElement; } } } public int size(){ return this.size; } public Iterator iterator(){ return null; } }