▶ 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
'JAVA > 개념정리' 카테고리의 다른 글
[Java] isEmpty() vs == null 차이 (0) | 2022.12.13 |
---|---|
[Java] For each문 (=향상된 for문, 개선된 for문) (1) | 2022.09.19 |
[Java] 자바 기본 API 2 : Wrapper Class(래퍼 클래스) (0) | 2022.08.21 |
[Java] 자바 기본 API 1 : String Class 2 - 자주 쓰이는 메소드 (0) | 2022.08.20 |
[Java] 자바 기본 API 1 : String Class 1 (0) | 2022.08.20 |