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();
'자바 (Java) > 요약' 카테고리의 다른 글
Chpt 11. 컬렉션 프레임워크 - 주제 5. Map 인터페이스와 구현 클래스들 (0) | 2023.11.08 |
---|---|
Chpt 11. 컬렉션 프레임워크 - 주제 4. Set 인터페이스와 구현 클래스들 (1) | 2023.11.08 |
Chpt 11. 컬렉션 프레임워크 - 주제 3. List 인터페이스와 구현 클래스들 (0) | 2023.11.08 |
Chpt 11. 컬렉션 프레임워크 - 주제 1. 컬렉션 프레임워크와 핵심 인터페이스 (0) | 2023.11.08 |
Chpt 9. java.lang 패키지, util 클래스 - 주제 4. 래퍼 클래스 (0) | 2023.11.03 |