基本思路
- Iterator接口中有两个方法
public interface Iterator {
Object next();
boolean hasNext();
}
- Collection接口
定义一个返回类型为Iterator的方法
public interface collection {
public void add(Object o);
public int size();
Iterator iterator();
}
- 以ArrayList为例
继承Collection接口,并实现iterator
方法。
返回一个Iterator
类型的对象
// 返回的内容一定是实现了Iterator接口的类的对象,这个类具体是什么名字并不重要。
public Iterator iterator() {
return new ArrayListIterator();
}
该Iterator
类型的对象,实现了Iterator
的接口,并且重写相应的方法。
public Iterator iterator() {
return new ArrayListIterator();
}
// 使用内部类的形式实现,
private class ArrayListIterator implements Iterator {
private int current = 0;
@Override
public Object next() {
// TODO Auto-generated method stub
Object o = objects[current];
current++;
return o;
}
@Override
public boolean hasNext() {
// TODO Auto-generated method stub
if (current >= index) {
return false;
} else {
return true;
}
}
}