- Vector<E>, ArrayList<E>, LinkedList<E>가 상속받는 인터페이스
- Vector, ArrayList, LinkedList, Set과 같이 요소가 순서대로 저장된 컬렉션에서 요소를 순차 검색할 때 사용
Vector<Integer> v = new Vector<Integer>(); //요소가 Integer 타입인 벡터
Iterator<Integer> it = v.iterator(); //벡서 v의 요소를 순차 검색할 Iterator 객체 리턴
- 벡터 v의 요소 타입(=Integer)에 맞추어 Integer<E>의 E에 Integer를 지정
- 벡터 v의 iterator()를 호출, v의 각 요소를 순차적으로 검색할 수 있는 반복자(Iterator 객체)
while(it.hasNext()){ //it로 벡터의 끝까지 반복
int n = it.next(); //it가 가리키는 요소 리턴
...
}
- it로 v의 각 요소들을 순차 방문하는 코드
- 첫 it.next()는 v의 첫 번째 요소를 리턴, it는 다음 요소를 가리킴
Iterator() 메소드
- Iterator 객체 반환
- 객체를 이용하여 인덱스 없이 순차적 검색 가능
예제 7-4 예제 7-1의 코드를 Iterator<Integer>를 이용하여 수정
예제 7-1
import java.util.Vector;
public class VectorEx {
public static void main(String[] args) {
Vector<Integer> v=new Vector<Integer>(); //정수만 다루는 벡터 생성
v.add(5); //인덱스 0에 5
v.add(4); //인덱스 1에 4
v.add(-1); //인덱스 2에 -1
v.add(2, 100); //인덱스 2에 100이 삽입되고 -1은 인덱스 3으로 밀림
System.out.println("벡터 내 요소 수: "+v.size()); //벡터 크기
System.out.println("현재 벡터 용량: "+v.capacity()); //벡터 용량
for(int i=0; i<v.size(); i++) {
System.out.print(v.get(i)+" "); //벡터 내 i번째 정수 출력
}//모든 요소 출력
System.out.println();
int sum=0;
for(int i=0; i<v.size(); i++) {
sum+=v.elementAt(i);
}
System.out.println("벡터 내 모든 정수 합: "+sum);
}
}