package com.coding.basic;
@SuppressWarnings("rawtypes")
public class ArrayList implements List{
private int size = 0;
private Object[] elementData = new Object[100];
public void kuorong(int size){
if(size>elementData.length){
Object[] elementDataTemp = new Object[size*2];
System.arraycopy(elementData, 0, elementDataTemp, 0, elementData.length);
elementData = elementDataTemp;
}
}
public void add(Object o){
kuorong(size);
elementData[size] = o;
++size;
}
public void add(int index, Object o){
if(index>size||index<0)
throw new IndexOutOfBoundsException("��ȷ�����indexֵ������"+size+"�Ҳ�С��0");
kuorong(++size);
System.arraycopy(elementData, index, elementData, index+1, size-index);
elementData[index] = o;
}
public Object get(int index){
return elementData[index];
}
public Object remove(int index){
if(index>size||index<0)
throw new IndexOutOfBoundsException("��ȷ�����indexֵ������"+size+"�Ҳ�С��0");
System.arraycopy(elementData, index+1, elementData, index, size-index);
size--;
return elementData;
}
public int size(){
return size;
}
public Iterator iterator(){
return new myiterator();
}
public class myiterator implements Iterator{
private int nextIndex;
public boolean hasNext(){
return nextIndex!=size;
}
public Object next(){
return elementData[nextIndex++];
}
}
public static void main(String[] args) {
ArrayList al = new ArrayList();
al.add(1);
al.add(2);
al.add(3);
al.add(4);
al.add(2,5);
al.remove(2);
for(int i= 0;i<5;i++){
System.out.println(al.get(i));}
System.out.println(al.size());
}
}