package com.coding.basic;
public class ArrayList implements List {
private int size = 0;
private int length = 1;
private Object[] elementData = new Object[length];
public void add(Object o){
System.out.println("进行add方法");
capacity(size+1);
System.out.println(elementData.length);
elementData[size++] = o;
//size++;
}
public void add(int index, Object o){
capacity(size+1);
System.arraycopy(elementData, index, elementData, index+1, size-index);
elementData[index] = o ;
}
public Object get(int index){
System.out.println("进行get方法");
return elementData[index];
}
public Object remove(int index){
System.out.println("进行remove方法");
if(index>size){
return elementData;
}
System.arraycopy(elementData, index+1, elementData, index, size-index-1);
elementData[--size]=null;
System.out.println(size);
return elementData;
}
public int size(){
return this.size;
}
public Iterator iterator(){
return new Iterarorimp(this.elementData);
}
public class Iterarorimp implements Iterator{
int index;
Object[] data = null;
public Iterarorimp(Object[] data){
this.data = data;
}
public boolean hasNext() {
if(index>=data.length){
return false;
}
return true;
}
public Object next() {
return this.data[index++];
}
}
public void capacity(int newlength) {
System.out.println("进行扩容方法");
if(newlength>length){
Object[] newelementData = new Object[length*2];
System.arraycopy(elementData, 0, newelementData, 0, size);
this.elementData = newelementData;
length = length*2;
}
}
}