728x90

 

▶ Iterator<E> 인터페이스

컬렉션에 저장된 요소(element)를 읽어오는 표준화된 방법

  • 자바의 collection framework는 컬렉션에 저장된 요소(element)를 읽어오는 방법을 Iterator 인터페이스로 표준화하고 있음

Collection 인터페이스에서는 Iterator 인터페이스를 구현한 클래스의 인스턴스를 반환하는 iterator() 메소드를 정의하여 각 요소에 접근함

즉, Collection 인터페이스를 상속받는 List와 Set 인터페이스에서도 iterator() 메소드를 사용

       → iterator() 사용 : List & Set

 

Iterator 인터페이스는 아래 메소드를 사용하여 컬렉션의 각 요소(element)에 접근

 

※ JDK 1.5에 추가된 for each문(Enhanced for문)을 사용하도록 권장

→ 같은 성능을 유지하면서도 코드의 명확성을 확보하고 발생할 수 있는 버그를 예방

For each문 링크 : https://rise-up.tistory.com/777

 

ListIterator<E> 인터페이스

JDK 1.2에 추가됨

Iterator 인터페이스를 상속받아 여러 기능을 추가한 인터페이스

 

사용 조건

List 인터페이스를 구현한 List 컬렉션 클래스에서만 listIterator() 메소드를 통해 사용

 

ListIterator & Iterator 차이

Iterator 인터페이스는 컬렉션의 요소에 접근할 때 한 방향으로만 이동 가능

ListIterator 인터페이스는 컬렉션 요소의 대체, 추가, 인덱스 검색 등을 위한 작업에서 양방향으로 이동하는 것을 지원

 

연결 리스트(LinkedList)를 반복자(iterator)를 사용하여 순회하는 예제

 

리스트 반복자(List Iterator)를 사용하여 리스트의 모든 요소를 양방향 즉, 각각 순방향과 역방향으로 출력하는 예제

*while문 대신 for each문(향상된 포문) 많이씀

 

 

메소드

ListIterator 인터페이스 메소드

 

 

 

Enumeration<E> 인터페이스

JDK 1.0부터 사용해 온 Iterator 인터페이스와 같은 동작을 하는 인터페이스

hasMoreElements()와 nextElement() 메소드를 사용하여 Iterator와 같은 작업을 수행

 

현재에는 기존 코드와의 호환성을 위해서만 남아있으므로, Iterator 인터페이스 사용 권장

 

 

출처 : http://www.tcpschool.com/java/java_collectionFramework_iterator

 

 

 

 

 

728x90
반응형

+ Recent posts