2017-09-27 4 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

Theres는 세 approachs : 새로운 반복자에 대한

사용 a를

(하지만이 그래프의 두 번째 수준 및 반복 코드 만있을 것입니다) 여기에 내가 작성한 코드입니다

두 번째는 재귀 적으로 변경하는 것입니다.

또는 스택이 있어야하고 필요할 때 밀어 넣을 수 있습니다.

0

각 반복기가 객체에 대해 얻은 색인을 저장할지도를 만듭니다. 새 오브젝트로 전환해야 할 때마다지도를 업데이트 할 수 있습니다.