import java.io.IOException; import java.util.Iterator; import java.util.List; /** * Created with IntelliJ IDEA. * User: guohairui * Date: 17-2-22 * Time: 上午12:06 * To change this template use File | Settings | File Templates. */ public class MyArrayList { public int size = 0; private Object [] elementData = new Object[5]; public void add(int index,Object obj){ if(index>size() ||index<0) throw new IndexOutOfBoundsException("哎呀我去,不够了."); elementData[index]=obj; size++; } public void insert(int index,Object obj){ if(size>elementData.length-1){ System.out.println("当前size:" + size + " 当前length:" + elementData.length+",再插不够了,需要扩容"); Object [] tmpData = elementData; elementData =new Object[size+5] ; System.out.println("当前size:" + size + " 当前length扩了5后为:" + elementData.length); System.arraycopy(tmpData,0,elementData,0,index); elementData[index]=obj; System.arraycopy(tmpData,index,elementData,index+1,tmpData.length-index); }else { if(elementData[index]==null){ elementData[index]=obj; }else { System.out.println("当前size:" + size + " 当前length:" + elementData.length); System.arraycopy(elementData,index,elementData,index+1,size-index); elementData[index]=obj; } } size++; } public void add(Object obj){ if(size>=elementData.length){ System.out.println("当前size:" + size + " 当前length:" + elementData.length); Object [] tmpData = elementData; elementData =new Object[size+5] ; System.out.println("当前size:" + size + " 当前length扩了5后为:" + elementData.length); System.arraycopy(tmpData,0,elementData,0,size); elementData[size]=obj; }else { System.out.println("当前size:" + size + " 当前length:" + elementData.length); elementData[size]=obj; } size++; } public Object get(int index) { if(index>=size) throw new IndexOutOfBoundsException("越了"); return elementData[index]; } public Object remove(int index){ Object delValue = elementData[index]; int movesize = size-index-1; System.out.print("size:"+size+" index:"+index+" ,size-index-1:"+movesize); System.arraycopy(elementData,index+1,elementData,index,movesize); System.out.print("删除后前移位,数组末位清空"); elementData[--size]=null; return delValue; } public int size(){ return size; } public String toString(){ StringBuilder sb = new StringBuilder(); sb.append('['); for (int i=0;i<size;i++) { Object o = elementData[i]; sb.append(elementData[i]); if(i<size-1) sb.append(","); } return sb.append(']').toString(); } }