자바에서 iterater로 반복할 때 역순으로 할 순 없나요?

조회수 4854회

배열을 역순으로 탐색하고 싶을때 그냥 for문으로 돌릴때는

for (int i = nodes.size() - 1; i >= 0; i--) {
    final Node each = (Node) nodes.get(i);
    ...
 }

이런식으로 하면되는데

class ListReverser<T> implements Iterable<T> {
    private ListIterator<T> listIterator;        

    public ListReverser(List<T> wrappedList) {
        this.listIterator = wrappedList.listIterator(wrappedList.size());            
    }               

    public Iterator<T> iterator() {
        return new Iterator<T>() {

            public boolean hasNext() {
                return listIterator.hasPrevious();
            }

            public T next() {
                return listIterator.previous();
            }

            public void remove() {
                listIterator.remove();
            }

        };
    }

}

이런 코드에서는 for each같은 구문으로 돌릴때

for (final Node each : new ListReverser<Node>(nodes)) {
   //...
}

어떻게 역순으로 반복해야할지 잘 모르겠습니다. 가르쳐주세요.

1 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)