Java中的迭代器

时间:2017-09-27 20:35:47

标签: java iterator

所以我有一个类的每个对象的整数列表。 我试图迭代每个对象的列表,当我遇到某个条件时,我转到下一个对象,依此类推。

我的问题是,当我回到仍然在列表中有未访问元素的上层对象时,我如何记住该特定对象的迭代器。这是我写的代码:

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? 
    }
}

2 个答案:

答案 0 :(得分:0)

Theres三种方法:

在新的迭代器上使用for(但它只适用于图形的第二级和重复的代码)

第二个是将其更改为递归。

或者你可以做一些关于拥有一个堆栈并在必要时推送/弹出它。

答案 1 :(得分:0)

创建一个映射来存储每个迭代器为对象获取的索引。您可以在需要切换到新对象时更新地图,并在返回时从中拉出