* 참고 자료 : 명품 자바 프로그래밍
Vector, ArrayList, LinkedList, Set과 같이 요소가 순서대로 저장된 컬렉션에서 요소를 순차적으로 검색할 때는 java.util 패키지의 Iterator<E> 인터페이스를 사용하면 편리하다. 여기서 <E>에는 컬렉션의 매개변수와 동일한 타입을 지정해야 한다.
- Iterator<E>의 주요 메소드
메소드 | 설명 |
boolean hasNext() | 방문할 요소가 남아 있으면 true 리턴 |
E next() | 다음 요소 리턴 |
void remove() | 마지막으로 리턴된 요소 제거 |
- Iterator<E> 생성
요소가 Integer 타입인 벡터를 선언한다면 벡터의 요소 타입에 맞추어 Iterator도 Integer로 지정해주어야 한다.
(예시)
Vector<Integer> v = new Vector<Integer>(); // 요소가 Integer 타입인 벡터
Iterator<Integer> it = v.iterator(); // 벡터 v의 요소를 순차 검색할 Iterator 객체 리턴
- 이제, it 객체를 이용하면 벡터의 각 요소를 순차 검색할 수 있다.
다음은 it로 v의 각 요소들을 순차 방문하는 코드이며, 처음 it.next()는 v의 첫 번째 요소를 리턴하고, it는 다음 요소를 가리킨다.
while(it.hasNext()) { // it로 벡터의 끝까지 반복
int n = it.next(); // it가 가리키는 요소 리턴. it의 요소 타입은 Integer이므로 정수 리턴
....
}
- Iterator를 이용하여 Vector 속의 모든 요소를 출력하고 합 구하기
package Chapter7;
import java.util.*;
public class IteratorEx {
public static void main(String [] args) {
// 정수 값만 다루는 제네릭 벡터 생성
Vector<Integer> v = new Vector<Integer>();
v.add(5);
v.add(4);
v.add(-1);
v.add(2, 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(); // it 다시 설정
while(it.hasNext()) {
int n = it.next();
sum += n;
}
System.out.println("벡터에 있는 정수의 합 : " + sum);
}
}
출력 결과 :
'자바 > 자바 개념' 카테고리의 다른 글
[자바 문법] 자꾸 까먹는 문법 정리 (상시 업데이트) (0) | 2022.08.16 |
---|---|
[Java] HashMap<K, V> / 2021.01.01 (0) | 2022.01.01 |
[Java] Vector<E> / 2021.12.29 (0) | 2021.12.29 |
[Java] 제네릭과 컬렉션의 개념 / 2021.12.29 (0) | 2021.12.29 |
[Java] String 클래스 / 2021.11.21 (0) | 2021.11.21 |