2017-09-27 68 views
-1

所以我有一个类的每个对象的整数列表。 我想遍历每个对象的列表,当我遇到一个特定的条件,我移动到下一个对象等等。Java中的迭代器

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

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

你试图存储对Iterator的引用,或者你是否试图记住列表中的位置?目前还不清楚你想要解决什么问题。 – TinkerTenorSoftwareGuy

+0

我很困惑,为什么你没有简单地使用第二个Iterator变量。 – VGR

回答

0

即使世界3个技术途径:

上一个新的迭代器使用(但是这将是只为你图的第二级和重码)

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

或者你可以做一些有关堆栈的事情,并在必要时推/拉它。

0

创建一个映射来存储每个迭代器获得的对象的索引。你可以更新地图,当你需要切换到一个新的对象,并从它拉回来时,只要你回来