본문으로 바로가기

Java- 컬렉션 프레임워크(Iterator)

category 프로그래밍 언어/Java 2019. 7. 18. 17:36

1. Iterator

컬렉션에 접근할 때 사용하는 인터페이스입니다. 

 

Iterator 인터페이스를 정의하고 Collection 인터페이스에서 Iterator를 반환하는 iterator()를 정의합니다.

 

흔히 배열리스트에서 접근하기 위해 아래와 같이 코드를 작성합니다.

 

List list = new ArrayList();

Iterator iterator = list.iterator();

while(iterator.hasNext())
  System.out.println(iterator.next());

Map도 물론 사용할 수 있는데 사용법이 다릅니다. 

 

Map map = new HashMap();
Iterator iterator = map.keySet().iterator();

keySet을 통해서 불러야합니다.

 


2. ListIterator

ListIterator은 Iterator의 기능을 추가한 것으로 양방향 접근이 가능합니다.

 

즉 순방향, 역방향

 

hasNext()는 순방향으로 접근하고 hasPrevious()는 역방향으로 접근합니다.

 

public class ListIteratorEx1 {
    public static void main(String[] args) {
        ArrayList list = new ArrayList();
        list.add("1");
        list.add("2");
        list.add("3");
        list.add("4");
        list.add("5");

        ListIterator listIterator = list.listIterator();

        while (listIterator.hasNext()) {
            // 순반향으로 진행하면서 읽어옴
            System.out.println(listIterator.next());
        }
        System.out.println();

        while (listIterator.hasPrevious()) {
            // 역방향으로 진행하면서 읽어옴
            System.out.println(listIterator.previous());
        }
        System.out.println();
    }
}
1
2
3
4
5

5
4
3
2
1