Java - Iterator, ListIterator, Enumeration

iseon_u·2022년 5월 22일
0

Java

목록 보기
55/77
post-thumbnail

Iterator, ListIterator, Enumeration

  • 컬렉션에 저장된 데이터를 접근하는데 사용되는 인터페이스
  • 구버전 Enumeration → 신버전 Iterator
  • 접근성 향상 → ListIterator (단방향 → 양방향) (previous())

Iterator 인터페이스 메서드

메서드설명
boolean hasNext()1️⃣ 읽어 올 요소가 남아있는지 확인한다. 있으면 true, 없으면 false를 반환
Object next()2️⃣ 다음 요소를 읽어 온다. next()를 호출하기 전에 hasNext()를 호출해서 읽어 올 요소가 있는지 확인

Iterator

  • 컬렉션에 저장된 요소들을 읽어오는 표준화 방법 (List, Set)
  • 컬렉션에 iterator()를 호출해서 Iterator를 구현한 객체를 얻어서 사용
  • iterator 는 1회용이라 다쓰고나면 다시 객체를 얻어와야 한다.
// 다른 컬렉션으로 변경할 때는 이 부분만 변경
List list = new ArrayList();
Iterator it = list.iterator();

while(it.hasNext()) { // hasNext() 읽어올 요소가 있는지 확인
	System.out.println(it.next()); // next() 다음 요소 읽기
}
it = list.iterator(); // 다시 사용하려면 새로운 객체를 얻어야 한다.
TreeSet c = new TreeSet(); // Set 은 Collection 의 자손
Collection c = new TreeSet(); // 부모 참조 변수 타입을 써야 유연한 코드

Map iterator()

  • Map 인터페이스는 Collection 인터페이스의 자손이 아니기 때문에 iterator() 메서드가 없다.
  • keySet(), entrySet(), values() 를 호출해서 사용
Map map = new HashMap();
Iterator it = map.entrySet().iterator(); // 간단히 한 줄
// <----
Set eSet = map.entrySet();
Iterator it = eSet.iterator();
profile
🧑🏻‍💻 Hello World!

0개의 댓글