Iterator, ListIterator, Enumeration

김설영·2022년 4월 12일
0

컬렉션에 저장된 데이터에 접근(읽어오기)하는 데 사용되는 인터페이스!

  • Enumeration(구버전)과 Iterator(신버전)는 비슷하다.

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

Iterator

  • 컬렉션에 저장 된 요소들을 읽어오는 방법을 표준화 한 것 (컬렉션이 변경되어도, 동일하게 사용 가능)

  • boolean hasNext()로 확인 후, Object next()로 읽기.

  • 컬렉션에 iterator() 호출 -> Iterator를 구현한 객체를 얻어서 사용.

  • iterator() 메서드는 Collection 인터페이스가 가지고 있는 추상메서드이기 때문에, 컬렉션 인터페이스를 구현한 클래스는 모두 보유하고있다.

List list = new ArrayList();	// 다른 컬렉션으로 변경 시, 이 부분만 고치면 됨
Iterator it = list.iterator();	// Iterator 객체를 반환

while(it.hasNext()) {	// 읽어 올 요소가 있는지 확인
	System.out.println(it.next());	// 다음 요소를 읽어옴
}
  • Map에는 iterator()가 없다. Collection 인터페이스를 구현한 클래스가 아니기 때문.

  • keySet(), entrySet(), values()를 호출해야 함. 각각의 반환 타입이 Set, Set, Collection이기 때문에, 변경 후 iterator를 사용

Map map = new HashMap();
...
Iterator it = map.entrySet().iterator();
profile
블로그 이동하였습니당! -> https://kimsy8979.tistory.com/

0개의 댓글