Programming/Java

[Java] Iterator, ListIterator, Enumeration 반복자

kmindev 2023. 11. 3. 15:18

남궁성님의 Java의 정석(3rd Edition)을 보고 정리한 글입니다.

1. Iterator, ListIterator, Enumeration

  • 모두 Collection에 저장된 데이터를 접근하는데 사용되는 인터페이스
  • Enumeration은 Iterator의 구버젼(호환성 때문에 남아있을 뿐 잘 사용하지 않음)
  • ListIterator는 Iterator의 접근성을 향상시킨 것(단방향 → 양방향)

 

a. Iterator

public class Main {
    public static void main(String[] args) {
        ArrayList list = new ArrayList();
        for(int i=0; i<5; i++) {
            list.add(i);
        }

        Iterator iterator = list.iterator();

        while (iterator.hasNext()) {
            System.out.print(iterator.next() + " ");
        }
    }
}

실행결과
0 1 2 3 4

 

 

b. ListIterator

public class Main {
    public static void main(String[] args) {
        ArrayList list = new ArrayList();
        for(int i=0; i<5; i++) {
            list.add(i);
        }

        ListIterator listIterator = list.listIterator();

        while (listIterator.hasNext()) {
            System.out.print(listIterator.next() + " ");
        }

        System.out.println();

        while (listIterator.hasPrevious()) {
            System.out.print(listIterator.previous() + " ");
        }
    }
}

실행결과
0 1 2 3 4 
4 3 2 1 0