[ Iterator, Enumeration ]
둘 다 컬렉션 객체들의 요소들을 조회할 때 사용한다.
(for문으로 데이터를 가져오는 방법도 있지만 순환 인터페이스인 iterator와 Enumeration을 사용하는 방법도 있다.)
[ Iterator vs Enumeration ]
Iterator는 remove()를 제공한다.
Enumeration보다 Iterator인터페이스를 사용하는 것이 더 낫다.(Enumeration은 legacy)
[ Iterator 함수 ]
- hasNext() : 순회할 다음 원소가 남아 있으면 True를 반환한다.
- next() : 다음 원소로 이동하여 반환한다.
- remove() : 가장 최신에 반환 된 원소를 삭제한다.
- forEachRemaining(Consumer<? super E> action) : 모든 원소가 주어진 작업을 처리하거나, 예외가 발생할때까지 작업을 수행한다.
[ Enumeration 함수 ]
- asIterator() : Iterator 인터페이스형으로 바꿔서 반환한다.
- hasMoreElements() : enumeration에 순회할 다음 원소가 남아있는지 확인한다. (= Iterator함수 hasNext())
- nextElement() : 다음 원소를 반환한다. (= Iterator함수 next())
[ 예제 ]
request.getParameterNames().asIterator().forEachRemaining(...);
request.getParameterNames()의 반환값은 Enumeration이다.
asIterator()을 통해 Enumeration 인터페이스를 Iterator 인터페이스형으로 바꿔서 반환하고,
forEachRemaining()로 예외가 발생하기 전까지 모든 원소에 대해서 주어진 작업을 수행한다.
'Java' 카테고리의 다른 글
[Java] Reflection API (0) | 2024.02.18 |
---|---|
[Java] Optional이란? Optional 개념 및 사용 (0) | 2023.10.05 |
[Java] import static 사용하는 이유 (0) | 2023.08.09 |
[Java] Static - 정적 변수와 메서드 (0) | 2023.06.13 |
Intellij tomcat 연동 및 설정 (gradle) (0) | 2023.05.19 |