프로그래밍 언어/JAVA

컬렉션의 순차 검색을 위한 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이므로 정수 리턴
	...
}

 

Vector<Integer> 객체와 Iterator 객체의 관계

 

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