实现ArrayList迭代器的方法,目前只实现了普通迭代器的方法
所有分析随代码附上
/**
* 调用内部类MItr
* @return
*/
@Override
public MyIterator<E> iterator() {
return new MItr();
}
/**
* 内部类MItr
* 实现MyIterator接口的所有迭代器方法
*/
private class MItr<E> implements MyIterator<E>{
int cursor; //迭代器的游标,表示下一个元素的索引位置
int prev=-1; //表示上一个元素的索引位置
int exceptModCount=modCount; //该迭代器职责内预期执行修改的次数
//exceptModCount的初值为modCount
@Override
public boolean hasNext() {
return cursor!=size; //当下个元素游标没有走到elements最后一个元素上时返回true
//当前迭代的位置不是数组的最大容量值就返回true
}
@Override
public E next() {
//检查是否有来自不属于该迭代器的修改
checkModificationCount();
//i用于维护cursor与prev的关系
int i=cursor;
if(i>=size){
throw