package com.coding.basic; public class ArrayList implements List { private int size = 0; private Object[] elementData = new Object[100]; public void add(Object o){ //若插入元素后会溢出,则对数组进行扩容,在这里只把空间加1 if ((size()+1)>elementData.length) { System.arraycopy(elementData, 0, elementData, 0, elementData.length+1); elementData[size] = o; size++; }else { //若插入元素后不出现溢出,则直接添加在末尾 elementData[size] = o; } } //index在length范围之内正常插入,若index大于length则抛出异常 public void add(int index, Object o){ Object temp; if (index<elementData.length) { System.arraycopy(elementData, 0, elementData, 0, elementData.length+1); temp = elementData[elementData.length-1]; elementData[elementData.length] = temp; for (int i = elementData.length; i > index; i--) { elementData[i-1] = elementData[i-2]; } elementData[index] = o; }else if (index==elementData.length) { add(o); }else{ System.out.println("ArrayIndexOutOfBoundsException"); } } public Object get(int index){ if (index<=elementData.length-1) { return elementData[index]; }else { System.out.println("ArrayIndexOutOfBoundsException"); } return elementData; } public Object remove(int index){ if (index<elementData.length) { for (int i = index; i < elementData.length; i++) { elementData[i] = elementData[i+1]; } return elementData; }else { System.out.println("ArrayIndexOutOfBoundsException"); } return elementData; } public int size(){ for (Object object : elementData) { if (object!=null) { size += 1; } } return size; } public Iterator iterator(){ return null; } }