Iterator<E>
- 인터페이스다.
- 콜렉션에 대한 반복작업을 수행하는 객체들이 구현할 사양이 정의되어 있다.
- 향상된-for문이 제공되기 전까지 콜렉션에 저장된 객체들을 반복처리할 때 Iterator<E> 구현객체를 사용했다.
- 주요 메소드
boolean hasNext()
반복처리할 객체가 남아있으면 true를 반환한다.
E next()
객체를 꺼낸다.
void remove()
이번 반복작업에서 다룬 객체를 삭제한다.
- Iterator<E> 인터페이스의 구현객체를 획득하는 방법
Collection<E> 인터페이스를 구현한 모든 자료구조 구현객체는 Iterator<E> 구현객체를 제공하는 메소드가 있다.
모든 자료구조 구현 클래스는 Iterator<E>를 반환하는 iterator()메소드를 구현하고 있다.
ex)
Set<String> names = new HashSet<>();
names.add("김유신");
names.add("강감찬");
names.add("류관순");
names.add("이순신");
names.add("윤봉길");
### 향상된 for문을 사용해서 콜렉션 객체에 저장된 객체들을 반복처리하기
for (String name : names) {
// if (name.equals("김유신")) {
// names.remove("김유신"); // 향상된 for문 내부에서는 콜렉션에 저장된 객체를 절대로 삭제할 수 없다. -> Iterator사용
// }
} // 향상된 for문이 더 간단하다. -> Iterator를 사용해야되는 경우를 제외하고 향상된 for문 사용하기
### Iterator를 사용해서 콜렉션 객체에 저장된 객체들을 반복처리하기
// Iterator<E> 객체를 획득해서 반복작업 수행하기
Iterator<String> itr = names.iterator();
while (itr.hasNext()) {
String name = itr.next();
// 콜렉션의 객체들을 반복처리하면서 특정 객체를 삭제할 수 있다.
if (name.equals("김유신")) {
itr.remove();
}
}
'학원 정리 > 자바' 카테고리의 다른 글
예외(Exception) (0) | 2022.10.26 |
---|---|
Map<K,V> 인터페이스 (0) | 2022.10.24 |
ArrayList<E>와 Vector<E>의 주요 메소드 (0) | 2022.10.21 |
List<E> (0) | 2022.10.20 |
Set<E> (0) | 2022.10.19 |
댓글