package com.basic.datastructure; import java.util.Arrays; public class ArrayList implements List{ private Object [] array =new Object [15]; private int size=0; private int aindex=0; @Override public void add(Object o) { if(aindex>(int)(array.length/3*2)){ array=autoGrew(array); } array[aindex]=o; size++; aindex++; } @Override public void add(int index, Object o) { if(index>=array.length){ throw new IndexOutOfBoundsException(); } array[index]=o; size++; aindex=index; } @Override public Object get(int index) { if(index>=array.length){ throw new IndexOutOfBoundsException(); } return array[index]; } @Override public Object remove(int index) { if(index>=array.length){ throw new IndexOutOfBoundsException(); } Object o=array[index]; for(int i=index;i<array.length;i++){ if(i==array.length-1){ break; } array[i]=array[i+1]; } size--; return null; } @Override public int size() { return size; } public Object [] autoGrew(Object [] o){ Object [] newArray; return newArray=Arrays.copyOf(o, (int) (o.length*1.5)); } }