- 컬렉션에 저장된 데이터를 접근하는데 사용되는 인터페이스
- Enumeration은 Iterator의 구버전
- ListIterator는 Iterator의 접근성을 향상시킨 것 (단방향 -> 양방향) *잘 안씀
메서드 | 설 명 |
boolean hasNext() ★★ | 읽어 올 요소가 남아있는지 확인한다. 있으면 true. 없으면 false를 반환한다. |
Object next() ★★ | 다음 요소를 읽어 온다. next()를 호출하기 전에 hasNext()를 호출해서 읽어 올 요소가 있는지 확인하는 것이 안전하다. |
void remove() | next()로 읽어 온 요소를 삭제한다. next()를 호출한 다음에 remove()를 호출해야한다.(선택적 기능) |
void forEachRemaining(Consumer<? super E> action) | 컬렉션에 남아있는 요소들에 대해 지정된 작업(action)을 수행한다. 람다식을 사용하는 디폴트 메서드.(JDK1.8부터 추가) |
↑ Iterator 인터페이스의 메서드
메서드 | 설 명 |
boolean hasMoreElements() | 읽어 올 요소가 남아있는지 확인한다. 있으면 true. 없으면 false를 반환한다. Iterator의 hasNext()와 같다. |
Object nextElement() | 다음 요소를 읽어 온다. next()를 호출하기 전에 hasMoreElements()를 호출해서 읽어 올 요소가 있는지 확인하는 것이 안전하다. Iterator의 next()와 같다. |
↑ Enumeration인터페이스의 메서드
Iterator
- 컬렉션에 저장된 요소들을 읽어오는 방법을 표준화한 것.
- 컬렉션에 iterator()를 호출해서 Iterator를 구현한 객체를 얻어서 사용
List list = new ArrayList(); // 다른 컬렉션으로 변경할 때는 이 부분만 고치면 된다.
Iterator it = list.iterator();
while(it.hasNext()) { // boolean hasNext() 읽어올 요소가 있는지 확인
System.out.println(it.next()); // Object next() 다음 요소를 읽어옴.
}
*iterator를 써서 다 읽고 나면 다시 iterator를 생성해서 읽어야한다. 즉 일회용이다.
Map과 Iterator
- Map에는 iterator()가 없다. keySet(), entrySet(), values()를 호출해야함.
'Programming > 자바(Java)' 카테고리의 다른 글
11-30 Comparator와 Comparable (0) | 2024.10.14 |
---|---|
11-25 Arrays (0) | 2024.10.14 |
11- 15 Stack & Queue (1) | 2024.10.14 |
11-12 LinkedList / ArrayList, LinkedList 비교 (1) | 2024.10.13 |
11-7 ArrayList (0) | 2024.10.11 |