[Java] Iterator

Sechan Beak·2023년 7월 6일
1

Java Collection

목록 보기
2/2
post-thumbnail

Iterator란??

Iterator Interface
Collection을 반복하기 위해서 Iterator Interface의 구현체를 통해 만들어낸 객체이다.

Iterator 객체의 생성

Iterator 는 생성자를 가지지 않는다.

Iterator 객체는 new 키워드와 함께, 생성자를 사용해서 만들어 낼 수 없다. Iterator는 생성자를 가지지 않기 때문이다.
사실 이는 당연한 것이, Iterator는 Class가 아니라 Interface이기 때문이다. Interface는 인스턴스화 될 수 없다.

Iterator 객체는 iterator() 메소드를 사용해서 생성할 수 있다.

'iterator()'메소드는 Collections Framework의 제일 최상위 인터페이스인 'Iterable' 인터페이스에서 정의된다.

Collection, 그 이후 List, Set등의 인터페이스가 Iterable을 상속하고, 이들의 구현체(HashSet, ArrayList등)의 인스턴스를 통해서 iterator()메소드를 호출해 iterator 객체를 생성할 수 있다.

그리고 별도의 인터페이스인 Iterator 인터페이스에서는 Iterator 객체가 가져야할 추상메소드들을 제공한다. 이 메소드들도 각 구현체에서 구현체의 자료구조 특성에 맞게 구현된다.

Iterator의 3가지 Method

hasNext()

next()

remove()

To summarize..

  1. Iterator는 class가 아니다. Interface이다. 따라서 생성자가 없다.

  2. Iterator 객체를 생성하기 위해서는 iterator() 메소드를 사용해야한다. 이는 Iterable 인터페이스에서 제공된다. Iterable 인터페이스를 상속하는 여러 인터페이스들이 있고, 이를 최종적으로 구현하는 구현체(HashSet, ArrayList등)에서 iterator() 메소드가 구현된다.

  3. 한편 Iterator 인터페이스는 Iterator 객체가 가져야하는 추상메소드를 제공한다. 이들의 구체적인 구현 또한 HashSet등의 구현체에서 이루어진다.

ref.

profile
거사 하나 치르면 올림

0개의 댓글

관련 채용 정보