Languages/Java

[JAVA]Iterator란?

MoonSta 2023. 1. 9. 09:57

Iterator란?

 반복이라는 사전적인 의미가 있는 Iterator에 대하여 알아보도록 하겠습니다. JAVA에서 Iterator는 무엇을 반복하는 것일까?

 

Java의 Iterator

 Iterator란 Java의 컬렉션(Collection)에 저장된 요소들을 순회하는 인터페이스입니다. Iterator의 이해를 위해서는 컬렉션(Collection)이 무엇인지 알아야 합니다. 아랫글을 우선 읽고 와주시면 감사하겠습니다! 

 

2022.11.30 - [JAVA] - [JAVA] 콜렉션이란?

 

[JAVA] 콜렉션이란?

JAVA의 컬렉션(collection>이란 데이터의 집합을 의미하며 컬렉션 프레임워크(collection framework)란 다수의 데이터를 쉽고과적으로 처리할 수 있는 표준화된방법을 제공하는 클래스의 집합을 의미한다

mooonstar.tistory.com

 이제 컬렉션(Collection)의 개념을 파악하였다면 iterator에 대하여 본격적으로 알아보도록 하겠습니다. Java에서는 컬렉션에 저장된 요소를 읽어오는 방법을 Iterator 인터페이스로 표준화하고 있습니다. 컬렉션에서 저장된 요소를 가지고 오는 방법이 모두 다르다. 실제 여러 개발자가 협업을 하는 프로젝트에서 표준화된 Iterator 인터페이스를 사용하지 않는다면 어려움이 생길 것이다. 따라서 Iterator 인터페이스를 사용하여 컬렉션 요소에 접근하는 것을 권장합니다.


Iterator 인터페이스

public interface Iterator<E> {
    boolean hasNext();
    E next();
    default void remove() {
        throw new UnsupportedOperationException("remove");
    }
    default void forEachRemaining(Consumer<? super E> action) {
        Objects.requireNonNull(action);
        while (hasNext())
            action.accept(next());
    }
}

Iterator 메서드

함수 기능 반환값
hasNext() 다음 요소가 있는지 확인함 True / False
next() 다음 요소를 읽어옴 다음 요소 
forEachRemaining 요소를 반복시킴(JAVA 8 도입)  
remove 읽어온 요소를 제거함  

 

Iterator 사용법

List<Integer> list = new ArrayList<Integer>();

list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);

----------------------------------------- |
Iterator<Integer> iter = list.iterator(); |
----------------------------------------- |
while (iter.hasNext()) {

    System.out.print(iter.next() + " ");

}

result
1
2
3
4
5