ListIterator
을 사용하여 일부 개체 목록을 반복합니다. 목표는 목록의 내용을 편집하는 것입니다.ListIterator를 사용하여 List 내용을 편집하는 방법
public class Test {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
ArrayList list = new ArrayList<>(Arrays.asList("One", "Two", "Three","Four","Five"));
ListIterator<String> listIterator = list.listIterator();
String current ;
while (listIterator.hasNext()) {
doSomething(listIterator);
current = listIterator.next();
//here I Want that current has the same value as it was Before The doSomething Call
//or in other Word , i want to save the adress of the last visired object In the List before doSomething Call.
//As a result i can iterate from this point in the List.
}
}
private static ListIterator<String> doSomething(ListIterator<String> listIterator) {
System.out.println("Dosomething " + listIterator.next()); //
System.out.println("Dosomething " + listIterator.next()); //
System.out.println("Dosomething " + listIterator.next()); //
System.out.println("Dosomething " + listIterator.next()); //
return listIterator;
}
}
당신이 나에게 몇 가지 통찰력을 전해 주 시겠어요 :
는 여기에 내가 뭘하는지의 예입니다?
나는 목록에서 앞뒤로 이동하고 편집하기를 원하기 때문에 ListIterator
을 사용하고 있습니다.
오직'doSomething' 만'ListIterator'로 무엇을하는지 알고 있습니다. 그래서'ListIterator'가 진입시와 같은 출구에 있는지 확인하는 것이 좋습니다. 'previous() '를 네 번 호출하여. – Andreas
도움을 주셔서 감사합니다. 또 다른 아이디어가 있습니까? dosomething하기 전에 현재 상태를 저장하는 것과 같습니까? + 당신은 그 listiterator가 여전히 내 목적에 좋다고 생각합니까, 아니면 다른 구조로 뛰어야 만합니까? –
반복자의 상태를 저장하거나 닫거나 복사 할 수 없습니다. ** ** [ListIterator'] (https://docs.oracle.com/javase/9/docs/api/java/util/ListIterator)의 javadoc과 같은 ** 문서를 읽었다면 이미 알고 있어야합니다. html). – Andreas