CS/Java
Iterator 이해하기
fit(i)
2023. 9. 14. 14:33
Iterator
- 자바 컬렉션(List, Set, Map)에 저장되어있는 데이터에 접근하기 위한 인터페이스이다.
- 따라서 컬렉션의 종류와 관계없이 동일한 순차 탐색 기능을 제공한다.
- Iterator와 Enumeration의 차이
- Enumeration은 자바 초기 버전에서 지원하는 기능으로, Hashtable, Vector에 사용 가능하다
- Iterator는 Collection 인터페이스를 상속받은 List, Set, Map, Vector 등에 Enumeration의 기능을 지원하도록 하는 인터페이스이다.
- 지원하는 메소드
- asIterator()
- Enumeration을 Iterator 변환하는 메소드이고, Enumeration의 hasMoreElements(), nextElement()를 사용할 수 있도록 지원한다.
- hasNext()
- 다음 element가 있으면 true, 없으면 false를 반환한다.
- next()
- 컬렉션에 저장된 다음 element를 반환한다. 반환타입은 Iterator의 제네릭 타입과 동일하다.
- remove()
- 컬렉션에서 꺼내온 요소를 제거한다.
- forEachRemaining()
- 다음 element가 있으면, 해당 element를 꺼내 지정된 작업을 수행한다.
- 다음 코드와 같이 동작한다.
default void forEachRemaining(Consumer<? super E> action) { Objects.requireNonNull(action); while (hasNext()) action.accept(next()); }
- asIterator()