본문 바로가기

자바 (Java)/요약

Chpt 11. 컬렉션 프레임워크 - 주제 2. 저장된 요소를 접근하는 Iterator 인터페이스

728x90

Iterator 이외에도 저장된 요소에 접근하는 ListIterator, Enumeration 인터페이스가 있지만 다음과 같은 차이점 정도만 알아두자.

 

[그림]

 

1. Iterator 인터페이스

 

Iterator는 저장된 요소를 읽는 방법을 표준화한 인터페이스이다. 다음과 같이 Iterator 인터페이스에는 확인과 읽기 두 가지메서드가 있다.

 

public interface Iterator {
    boolean hasNext() // (1) 확인
    Object next(); // (2) 읽기
    void remove();
}
public interface Collection {
    ...
    public Iterator iterator();
    ...
}

 

1) List, Set의 요소 읽기

 

Collection 인터페이스의 iterator()는 Iterator 인터페이스를 구현한 Iterator 인스턴스를 반환한다. 따라서 Collection을 구현한 List와 Set은 iterator()를 사용할 수 있다. 다음과 같은 방식으로 컬렉션에 저장된 요소를 읽을 수 있다.

 

컬렉션 인터페이스 참조 변수 = new 컬렉션 클래스(); // (1) 참조 변수에 컬랙션 클래스의 인스턴스 대입 (List, Set)

Iterator iterator = 참조 변수.iterator(); // (2) 참조 변수에 생성한 Iterator 인스턴스 대입

 

while (iterator.hasNext()) { // (3) 확인

    System.out.println(iterator.next()); // (4) 대입

}

 

Iterator와 같은 인터페이스는 표준을 제공해 객체 지향 프로그래밍의 장점을 부여한다.

 

[참고] List 클래스는 for문과 get()으로 요소를 읽을 수 있다.

 

2) Map의 요소 읽기

 

Map은 Collection 인터페이스를 구현하지 않았기 때문에 Key와 Value의 값을 각각 Set으로 얻어온 다음에 1)과 같은 방법을 사용해야 한다.

 

Map map = new HashMap();

Iterator iterator = map.(key|entry)Set().iterator();

반응형