package com.m0226.basic;
public class ArrayList implements List {
private int size = 0;
private Object[] elementData = new Object[100];
public void add(Object o){
//不够了怎么扩容
elementData[size++]=o;
}
public void add(int index, Object o){
if(index<0||index>size){
throw new IndexOutOfBoundsException("Joy Index "+index+", Size: "+size);
}
for(int i=size;i>index;i--){
elementData[i-1]=elementData[i];
}
elementData[index]=o;
size++;
}
public Object get(int index){
if(index<0||index>=size){
throw new IndexOutOfBoundsException("Joy Index "+index+", Size: "+size);
}
return elementData[index];
}
public Object remove(int index){
if(index<0||index>=size){
throw new IndexOutOfBoundsException("Joy Index "+index+", Size: "+size);
}
Object removeObj=elementData[index];
for(int i=index;i<size-1;i++){
elementData[i]=elementData[i+1];
}
size--;
return removeObj;
}
public int size(){
return size;
}
public Iterator iterator(){
return new Iterator() {
int ref=0;
@Override
public Object next() {
if(hasNext()){
return elementData[ref++];
}
return null;
}
@Override
public boolean hasNext() {
if(ref<0||ref>=size) return false;
return true;
}
};
}
}