package task01; import java.util.Arrays; /**第一周作业 * 自己实现一个 ArrayList * Created by eurry on 2017/2/26. */ public class ArrayList { /** * ArrayList的长度 */ private int size = 0; private Object[] elementData = {}; public void add(Object o){ elementData = Arrays.copyOf(elementData, size+1); elementData[size] = o; size++; } public void add(int index, Object o){ if(index < size){ elementData = Arrays.copyOf(elementData, size+1); 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 < size){ return elementData[index]; }else{ throw new IndexOutOfBoundsException("导致对数组范围以外的数据的访问"); } } public Object remove(int index){ if(index < size){ Object re = elementData[index]; System.arraycopy(elementData, index+1, elementData, index, size-index-1); elementData = Arrays.copyOf(elementData, size-1); size--; return re; }else{ throw new IndexOutOfBoundsException("导致对数组范围以外的数据的访问"); } } public int size(){ return size; } public String toString(){ String str = null; if(elementData.length > 0){ str = ""; for (Object anElementData : elementData) { str += anElementData.toString() + ","; } str = str.substring(0, str.length()-1); } return str; } /** * 测试 */ public static void main(String[] str){ ArrayList list = new ArrayList(); list.add("A"); list.add("B"); list.add(1, "C"); list.add("D"); Object d = list.get(3); Object dd = list.remove(3); System.out.println(list.size()); System.out.println(list.toString()); } }