CH11-22~24 iteraotr, Enumeration, Map과 iterator

[자바의 정석 - 기초편] ch11-22~24 Iterator, Enumeration, Map과 Iterator

iterator, Listiterator, Enumeration은 모두 컬렉션에 저장된 데이터에 접근하는데 사용하는 인터페이스이다.

iterator의 메서드이다.

Untitled

핵심 메서드는 위의 두개임. hasNext와 next… hasNext는 읽어올 데이터가 있는지 확인하는 메서드, next는 실제로 읽어오는 메서드임.

Enumeration은 old버전이고, 새 버전은 iterator이다.

아래가 Enumeration의 메서드이다. 거의 유사함.

Untitled

기존 자바 API에는 Enumeration을 쓰는 경우도 있음.

Listiterator는 Previous가 추가된 iterator이다. 양뱡향 연결리스트 등에 활용됨. List인터페이스를 구현한 컬렉션 클래스에서만 사용할 수 있다.

iterator를 따로 쓸까?

이는 데이터 읽기라는 ADT를 모든 컬렉션에 적용할 수 있도록 표준화 한것이다!(인터페이스의 장점이기도 하다.)

컬렉션클래스마다 구조가 다 달라서 읽기방법이 다 다르다. 이걸 표준화한게 iterator이다.

Iterator는 hasNext로 확인하고 next로 읽기만 하면 된다..! 클래스 별로 알아서 hasNext와 next가 구현되어있을 듯 하다. 사용자는 편리하다… 컬렉션별로 형변환해도 전부 hasNext, next로 통일되어있다.

iterator를 쓰는 방법