[Java 개발] Iterator 클래스

Java입문강좌

시작하며

여러분 안녕하세요!

DreamHanks의 254cm입니다.

이번 시간에는 Iterator 클래스를 알아보겠습니다.

Java의 전체 기사는 여기를 클릭해 주세요.

Iterator이란?

Set처럼 값을 반복하여 꺼내는 처리가 어려운 데이터 스트럭처를 위해

Collection Framework는 Iterator라는 클래스를 제공합니다.

 

Iterator는 모든 Collection 인터페이스 구현 클래스에 대한 반복 처리를 지원합니다.

하지만 Map은 Collection 인터페이스와 다른 인터페이스이기 때문에 이터레이터를 이용한 반복이  불가능합니다.

 

샘플

위의 샘플과 같이 Iterator를 이용하여 반복할 수도 있지만,

현재는 Java5버전에서 추가된 기능인 “enhanced for” 를 이용하여 반복적으로 출력하는 것이 권장되기 때문에 List의 경우에는 Iterator 를 잘 사용하지 않습니다.

출력 결과

 

샘플 2

위의 샘플을 보면 Iterator로 요소를 삭제하고 있습니다.

Iterator에서 삭제된 요소는 현본의 Collection에도 영향을 미치고 삭제된 요소의 원본도 삭제됩니다.

 

그리고 Iterator는 첫 번째 while에서 마지막으로 도달되고 두 번째 while에서는 다음 값이 존재하지 않기 때문에 두 번째 반복은 실행되지 않습니다.

출력 결과

 

샘플 3

위의 샘플과 같이 맵의 요소를 Iterator로 변환하기 위해서는

맵에서 Iterator로 직접 변환할 수 없으므로

맵에서 Entry로 이루어진 세트를 추출한 후 그 세트에서 Iterator를 추출하여 사용합니다.

Iterator 삭제 처리는 오브젝트 주소에 직접 적용되므로

아래의 출력 결과와 같이 현본의 맵의 데이터도 삭제됩니다.

 

끝으로

이번 기사는 이상입니다.

방문해 주셔서 감사합니다.

コメント