import java.util.ArrayList;
import java.util.Iterator;
import java.util.NoSuchElementException;
/**
* 自己实现ArrayList中Iterator的实现类
*/
public class MyArrayListIterator extends ArrayList<Object> {
private static final long serialVersionUID = 1L;
/**
* 重写ArrayList的迭代方法
*/
@Override
public Iterator<Object> iterator() {
return new MyIterator();
}
/**
* 迭代类的实现
*/
private class MyIterator implements Iterator<Object>{
int cursor;
int lastRet = -1;
/**
* 是否还有下一个元素
*/
@Override
public boolean hasNext() {
return cursor != MyArrayListIterator.this.size();
}
/**
* 返回下一个元数
*/
@Override
public Object next() {
if(cursor >= MyArrayListIterator.this.size()) {
throw new NoSuchElementException();
}
return MyArrayListIterator.this.get(lastRet = cursor++);
}
/**
* 删除当前元素
*/
public void remove() {
if (lastRet < 0) {
throw new IllegalStateException();
}
MyArrayListIterator.this.remove(lastRet);
cursor = lastRet;
lastRet = -1;
}
}
}