의문점 공부하기/📌 Java

📌 iterator란 무엇일까?

아리빠 2023. 7. 11. 19:37

Iterator란 자바에서 컬렉션 프레임워크에 저장된 요소들을 순회하여 읽어오는데 사용되는 인터페이스

Iterator를 사용하면 어떤 컬렉션 프레임워크라도 읽어볼 수 있는 표준화된 방법을 제공한다.

Iterator 인터페이스는 다형성을 구현하고자 하기 때문에 for 루프나 while 루프와 같은 제어문과 함께 사용된다

 

EX)

import java.util.ArrayList;
import java.util.Iterator;

public class IteratorTest {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("봄");
        list.add("여름");
        list.add("가을");
        list.add("겨울");

        Iterator<String> itr = list.iterator();

        while(itr.hasNext()){
            System.out.println("itr.next()==>" + itr.next());
        }
    }
}

list.iterator()를 호출하여 Iterator 객체를 얻은 후, hasNext() 메서드로 다음 요소의 존재 여부를 확인하고, next() 메서드로 실제 요소를 읽어온다. 이를 반복하면서 모든 요소를 읽어올 수 있다.

 

Iterator 객체는 이미 사용된 후에는 재사용할 수 없다

Iterator 인터페이스는 hasNext(), next(), remove() 세 가지 메서드를 제공한다

 hasNext() 메서드는 다음 요소가 존재하는지 여부를 true/false로 반환하며, true인 경우 다음 요소가 있다는 의미 next() 메서드는 다음 요소를 반환한다. remove() 메서드는 컬렉션에서 현재 요소를 제거한다