只需添加两个返回两个不同迭代器的方法,每个迭代器一个:
public Iterable eachOnce() {
List allResults = new ArrayList();
// fill list
return allResults;
}
public Iterable eachCyclic() {
return new Iterable() {
public Iterator iterator() {
return new Iterator() {
public boolean hasNext() {
return true;
}
public String next() {
// TODO implement
return null;
}
public void remove() {
// do nothing
}
};
}
};
}
这只是一个字符串列表的例子,只是适应.
代替
for (Polygon p : polygons) { }
只是用
for (Polygon p : polygons.eachOnce()) { }
或循环版