"유효한"요소가 발견 될 때까지 객체 목록을 가지고 앞으로 및 뒤로 반복하고 싶습니다.목록을 양방향으로 반복하는 방법은 무엇입니까?
MyClass {
private boolean valid;
public boolean isValid() { return valid; }
}
List<MyClass> classes; //assume sorted list
은 이제 유효 가장 가까운 요소를 찾기 위해 뒤로 위치 idx
에서 시작, 모두 전달을 반복하고 싶습니다. 지금까지 나는 이미 전달 알고리즘을 작동 시켰습니다. 하지만 코드를 최적화 할 수 있다고 생각 :
반복자 알고리즘이 더 나은 기록 할 수 위치 X
int idx = 10;
//find the closest element that is valid
for (ListIterator<MyClass> itr = classes.listIterator(idx); itr.hasNext();) {
if (itr.hasNext()) {
MyClass my = itr.next();
while (!my.isValid()) {
if (itr.hasNext()) {
my = itr.next();
} else {
break;
}
}
}
Sysout("the closest valid element is: " + my);
}
에서 시작되어 //?
왜 List.get (int index)를 사용하여 반복하지 않습니까? –
http://stackoverflow.com/questions/2102499/iterating-through-a-list-in-reverse-order-in-java :: 역 순서로 여기에 –
'iter.hasPrevious()'와'iter.previous()'당신이'next()'와 같이하는 것 – alfasin