컬렉션의 순차 검색을 위한 Iterator
Vector, ArrayList, LinkedList, Set과 같이 요소사 순서대로 저장된 컬렉션에서 요소를 순차 검색할 때 java.util 패키지의 Iterator<E> 인터페이스를 사용하면 편리합니다. 여기서 <E>에는 컬렉션의 메개변수와 동일한 타입을 지정해야 합니다. Iterator<E>의 메소드 간단하지만 매우 강력합니다. 다음 백터가 있다고 합시다.
Vector<Integer> v = new Vector<Integer>(); // 요소가 Integer 타입인 백터
다음과 같이 벡터 v의 iterator()를 호출히여, 벡터 v의 각 요소를 순차적으로 검색할 수 있는 Iterator 객체를 얻어냅니다. Iterator 객체를 반복자라고 부릅니다.
Iterator<Integer> it = v.iterator(); // 벡터 v의 요소를 순차 검색할 Iterator 객체 리턴
벡터 v의 요소 타입(Integer)에 맞추어 Iterator<E>의 <E>에 Integer를 지정하였습니다. 이제, it 객체를 이용하면 벡터의 각 요소를 순차 검색할 수 있습니다. 다음은 it로 v의 각 요소들을 순차 방문하는 코드이며, 처음 it.next()는 v의 첫 번째 요소를 리턴하고, it는 다음 요소를 가르킵니다.
while (it.hasNext()) { // it로 벡터의 끝까지 반복
int n = it.next(); // it가 가르키는 요소 리턴. it의 요소 타입은 Integer이므로 정수 리턴
...
}

Itetator<E> 인터페이스의 메소드
| 메소드 | 설명 |
| boolean hasNext() | 방문할 요소가 남아 있으면 true 리턴 |
| E next() | 다음 요소 리턴 |
| void remove() | 마지막으로 리턴된 요소 제거 |
Iterator를 이용하여 Vector 속의 모든 요소를 클릭하고 합 구하기
import java.util.Iterator;
import java.util.Vector;
public class IteratorEX {
public static void main(String[] args) {
// 정수 값만 다루믄 제네힉 벡터 생성
Vector<Integer> v = new Vector<Integer>();
v.add(5); // 5 삽입
v.add(4); // 4 삽입
v.add(-1); // -1 삽입
v.add(2, 100); // 4와 -1 사이에 정수 100 삽입
// Iterator를 이용한 모든 정수 출력하기
Iterator<Integer> it = v.iterator(); // Iterator 객체 얻기
while(it.hasNext()) {
int n = it.next();
System.out.println(n);
}
// Iterator를 이용하여 모든 정수 출력하기
int sum = 0;
it = v.iterator();
while (it.hasNext()) {
int n = it.next();
sum += n;
}
System.out.println("벡터에 있는 정수 합 : " + sum);
}
}
실행 결과
5
4
100
-1
벡터에 있는 정수 합 : 108
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
| LinkedList<E> & Collections 클래스 활용 (0) | 2025.04.08 |
|---|---|
| HashMap<K, V> (0) | 2025.04.05 |
| ArrrayList<E> (0) | 2025.03.30 |
| Vector<E> (0) | 2025.03.28 |
| 컬렉션과 제네릭 (0) | 2025.03.24 |