所以我有一个类的每个对象的整数列表。 我试图迭代每个对象的列表,当我遇到某个条件时,我转到下一个对象,依此类推。
我的问题是,当我回到仍然在列表中有未访问元素的上层对象时,我如何记住该特定对象的迭代器。这是我写的代码:
void function(Object u, List<Integer> tour, Iterator it) {
Object e;
while (it.hasNext()) {
e = it.next();
if (!e.visited) {
tour.add(e);
e.visited = true;
Vertex v = e.otherEnd(e.from);
v.outgoing++;
it = v.adj.listIterator(v.outgoing - 1);
//So instead of re-assigning Iterator it each time is there way //to remember the iterator for each list associated with the object?
}
}
答案 0 :(得分:0)
Theres三种方法:
在新的迭代器上使用for(但它只适用于图形的第二级和重复的代码)
第二个是将其更改为递归。
或者你可以做一些关于拥有一个堆栈并在必要时推送/弹出它。
答案 1 :(得分:0)
创建一个映射来存储每个迭代器为对象获取的索引。您可以在需要切换到新对象时更新地图,并在返回时从中拉出