1.场景:
-提供一种可以遍历聚合对象的方式。又称为:游标cursor模式
-聚合对象:存储数据
-迭代器:遍历数
2.开发场景:
-JDK内置迭代器
3.开发示例:
<1>抽象迭代器对象
//抽象迭代角色
public interface MyIterator {
void first();//将游标指向聚合对象的第一个对象
void last(); //将游标指向聚合对象的最后一个对象
boolean hasNext();//聚合对象中是否有下一个对象
void next(); //游标指向下一个对象
Object getCurrent();//获取游标当前指向对象
}
<2>具体聚合对象(具体迭代角色作为其内部类,实现抽象迭代角色)
//聚合对象
public class MyAggregation {
private List<Object> container=new ArrayList<Object>();
//添加对象
public void addObject(Object obj){
container.add(obj);
}
//移除对象
public void removeObject(Object obj){
container.remove(obj);
}
//创建迭代器对象
public MyIterator createIterator(){
return new ConcreteIterator();
}
private class ConcreteIterator implements MyIterator{
private int cursor;
@Override
public void first() {
cursor=0;
}
@Override
public void last() {
cursor=container.size()-1;
}
@Override
public boolean hasNext() {
if(cursor<container.size()){
return true;
}
return false;
}
@Override
public void next() {
if(cursor<container.size()){
cursor++;
}
}
@Override
public Object getCurrent() {
return container.get(cursor);
}
}
}
<3>类图