상세 컨텐츠

본문 제목

[JAVA] - Iterator란

Spring/JAVA

by Chan.94 2024. 3. 16. 21:39

본문

반응형

Iterator

객체 지향적 프로그래밍에서 배열이나 자료 구조의 내부의 요소를 순회하는 객체이다.

iterate : (계산, 컴퓨터 처리 절차를) 반복하다
iterator : 반복자

 

자바의 Iterator 인터페이스는 어떤 Collection객체라도 저장된 요소들을 순회할 수 있는 표준화된 방법을 제공하기 위해 만들어졌다. 물론, 대표적인 제어문인 for, while 문으로도 반복문을 얼마든지 가능하지만, Iterator는 '표준화된 방법을 제공'한다는 점에서 다형성을 구현하고자 했다.

Iterator 관련 메서드

Iterator 인터페이스가 제공하는 메서드는 3가지로 꽤 단순하다.

또한, '반복자'라는 이름답게 while, for 문과 함께 사용된다.

  • hashNext()
    다음 요소가 존재하는지 혹은 그렇지 않은지 true/false로 리턴한다. true 이면 다음 요소다 있다는 것이고, false 이면 현재 요소가 마지막이라는 뜻이다.
  • next()
    다음 요소를 가져온다.
  • remove()
    next()로 호출된 요소를 제거한다.

Iterator에서 내부적으로 호출하는 메서드의 순서는 hasNext() → next() → remove() 이다.

 

Iterator 예시

ArrayList<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
list.add("E");
list.add("F");

Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
    System.out.println(iterator.next());
}

//Iterator는 재사용이 불가능하다 두번쨰 while문은 실행이되지 않음
while (iterator.hasNext()) {
    System.out.println(iterator.next());
}

 


한 번 사용된 Iterator 객체는 재사용이 불가능하다.

아래의 두 번째 호출된 반복문에 사용된 Iterator의 객체는 이미 첫 번째에서 사용되었기 때문에 실행되지 않는다.

반응형

관련글 더보기

댓글 영역

>