Iterator, ListIterator, Enumeration

0

Collection

목록 보기
5/11

Iterator, ListIterator, Enumeration

  • 컬렉션에 저장된 데이터를 접근(읽어오기)하는데 사용되는 인터페이스
  • Enumeration은 Iterator의 구버전
  • ListIterator는 Iterator의 접근성을 향상시킨 것 (단반향 -> 양방향)
  • 왜 사용하는가?
    컬렉션에 저장된 요소들을 읽어오는 방법을 표준화한 것

주요 메소드

boolean hasNext() : 읽어 올 요소가 남아 있는지 확인한다. 있으면 true, 없으면 false를 반환
Object next() : 다음 요소를 읽어 온다. next()를 호출하기 전에 hasNext()를 호출해서 읽어올 요소가 있는지 확인하는 것이 안전하다

사용법

  • 컬렉션에 iterator()를 호출해서 Iterator를 구현한 객체를 얻어서 사용.
	List list- new ArrayList(); // 다른 컬렉션으로 변경할 때는 이 부분만 고치면 된다.
	Iterator it = list.iterator(); // Iterator 객체를 반환
	
	while(it.hasNext()) { // boolean hasNext() 읽어올 요소가 있는지 확인
		System.out.println(it.next());  // Object next() 다음 요소를 읽어옴
	}

iterator() 메서드는 Collection 인터페이서에 정의되어 있어서 List 와 Set이 가지고 있다.

iterator는 1회용 이여서 새로 받아 와야한다.
it = list.iteratior(); // 새로운 iterator 객체를 얻는다.

Map과 Iterator

  • Map 에는 iterator()가 없다.
    keySet(), entrySet(), values()를 호출해서 사용한다.

Map map = new HashMap();
. . . .
Iterator it = map.entrySet().interator();

위에 코드는
Set eSet = map.entrySet();
Iterator it = eSet.iterator();
와 같다.

0개의 댓글