1.用到的类
一个迭代器接口:里面可以定义next和hasNext方法。
一个迭代器实现类:实现迭代器方法,并定义一个index坐标和list集合
一个用于封装接口:里面有add和getIterator的方法
一个封装接口的实现类:实现这两个方法,以及定义Iterator和一个list集合
2.实现代码
迭代器接口
迭代器实现类
public class FruitIterator implements Iterator{
private List<Object> fruitList;
private int index = 0;
public FruitIterator(List<Object> fruitList) {
this.fruitList = fruitList;
}
@Override
public boolean hasNext() {
return index < fruitList.size();
}
@Override
public Object next() {
if(this.hasNext())
return fruitList.get(index++);
return null;
}
}
使用类接口
public interface Aggregate {
public Iterator getIterator();
public void add(Object obj);
}
使用类实现
public class FruitAggregate implements Aggregate {
List<Object> fruitList = new ArrayList<>();
@Override
public Iterator getIterator() {
return new FruitIterator(fruitList);
}
@Override
public void add(Object obj) {
fruitList.add(obj);
}
}
运行
@SpringBootApplication
public class IteratorApplication {
public static void main(String[] args) {
FruitAggregate fruitAggregate = new FruitAggregate();
fruitAggregate.add("Apple");
fruitAggregate.add("Banana");
fruitAggregate.add("Orange");
Iterator iterator = fruitAggregate.getIterator();
while (iterator.hasNext()){
System.out.println(iterator.next());
}
}
}