본문 바로가기

Java

Java Iterator, ListIterator, Enumeration 인터페이스

 

- 컬렉션에 저장된 데이터를 접근하는데 사용되는 인터페이스

- 컬렉션(List, Set)에 저장된 요소들을 읽어오는 방법을 표준화 한 것 👉🏻 표준화로 코드의 일관성을 유지하여 재사용성을 높임

 

1. Iterator

- 컬렉션에 iterator()를 호출하여 Iterator를 구현한 객체를 얻어 사용

- Iterator인터페이스의 메서드

메서드 설명
boolan hasNest() - 읽어 올 요소가 남아있는지 확인
- 있으면 ture, 없으면 false 반환
Object next() - 다음 요소 읽어오기
- next()를 호출 전 hasNext()를 호출하여 읽어 올 요소가 있는지 확인
void remove() - next()로 읽어 온 요소 삭제
- next() 호출 후 romove()를 호출(선택적 기능)
void forEachRemaining(Consumer<?super E>action) - 컬렉션에 남아있는 요소들에 대해 지정됨 작업 수행
- 람다식을 사요하는 디폴트 메서드(JDK 1.8부터)

 

- Map은 컬렉션을 구현한것이 아니므로 iterator()가 없으므로 entrySet(), keySet(),  values()를 호출하여 사용

// entrySet()메서드로 key-value쌍을 Entry타입의 객체로 얻은 후 iterator() 호출
Iterator it = map.entrySet().iterator();

// keySet()메서드로 key객체를 얻은 후 iterator() 호출
Iterator it2 = map.keySet().iterator();

 

 

2. ListIterator

- Iterator의 접근성을 향상시킨 것(단방향 -> 양방향)

- List를 구현한 경우만 사용 가능

 

3. Enumeration

- Iterator의 구버전

- Enumeration 메서드