자바의 정석 ch11-22~24 Iterator, ListIterator, Enumeration

Luna·2023년 6월 14일
0

JAVA

목록 보기
26/32

Iterator, ListIterator, Enumeration

  • 컬렉션에 저장된 데이터를 접근(읽어오기)하는데 사용되는 인터페이스
  • Enumeration은 Iterator의 구버전이다.
  • ListIterator는 Iterator의 접근성을 향상 시킨 것 (단방향->양방향)

Iterator 인터페이스의 메서드

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

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

whlie(it.hasNext()) { // boolean hasNext() 읽어올 요소가 있는지 확인
	System.out.println(it.next()); // Object next() 다음 요소를 읽어옴
}

Enumeration 인터페이스의 메서드

boolean hasMoreElements() : 위와 같음
Object nextElement() : 위와 같음


Iterator

  • 컬렉션에 저장된 요소들을 읽어오는 방법을 표준화 한 것- 컬렉션에
  • iterator()를 호출해서 Iterator를 구현한 객체를 얻어서 사용.

메서드

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

Map과 Iterator

  • Map에는 iterator()가 없다. Map은 Collection을 상속받고 있지 않기 때문에 iterator()가 없다.
  • keySet(), entrySet(), values()를 호출해야 한다.
Map map = new HashMap();
Iterator it = map.entrySet().iterator();

map.entrySet().iterator(); 이 한줄을 두 줄로 풀어쓰면 아래와 같다.

Set eSet = map.entrySet();
Iterator it = eSet.iterator();

0개의 댓글