package Collection;
public class ArrayList implements List {
private int size = 0;
private Object[] elementData = new Object[100];
public void add(Object o) {
if (o == null)
throw new RuntimeException("插入的值不能为null");
if ((size + 1) >= 100) {
throw new RuntimeException("数组越界异常");
}
elementData[size] = o;
size++;
}
public void add(int index, Object o) {
for (int i = index; i < size; i++) {
elementData[i + 1] = elementData[i];
}
elementData[index] = o;
}
public Object get(int index) {
if (index < 0 || index >= size)
throw new RuntimeException("索引异常");
return elementData[index];
}
public Object remove(int index) {
if (index < 0 || index >= size)
throw new RuntimeException("索引异常");
Object temp = elementData[index];
for (int i = index; i < size - 1; i++) {
elementData[i] = elementData[i + 1];
}
return temp;
}
public int size() {
return size;
}
public Iterator iterator() {
return new Itr();
}
private class Itr implements Iterator {
private int cursor = 0;
@Override
public boolean hasNext() {
return cursor != size;
}
@Override
public Object next() {
int i = cursor;
cursor = i + 1;
return elementData[i];
}
}
}