2017-09-27 20 views
-1

私はクラスの各オブジェクトの整数のリストを持っています。 私は各オブジェクトのリストを繰り返し処理しようとしています。ある条件に遭遇したときに、次のオブジェクトに移動するなどです。Javaの反復子

ここで私の質問は、私がその特定のオブジェクトのイテレータをどのように覚えているのか、リストに未訪問の要素が残っている透過オブジェクトに戻ったときです。 3 approachs Theresの

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

2番目のIterator変数を単純に使用していない理由が混乱しています。 – VGR

答えて

0

を::

は、新しいイテレータのために使用します(それだけであなたのグラフと繰り返しコードの2番目のレベルのためになります)ここで私が書いたコードです

2番目は再帰的に変更することです。

また、スタックを持っていて、必要なときにスタックをプッシュ/ポップすることができます。

0

各イテレータがオブジェクトに対して取得したインデックスを格納するマップを作成します。