Iterator란 자바의 컬렉션에 저장되어 있는 요소들을 순회하는 인터페이스이다.
Collection이란 자바에서 제공하는 자료구조들의 인터페이스로 List, ArrayList, Stack, Quque, LinkedList 등이 이를 상속받고 있다. 즉, 이러한 컬렉션 인터페이스를 상속받는 클래스들에 대해 Iterator 인터페이스 사용이 가능하다.
컬렉션 프레임워크에 대해 공통으로 사용이 가능하고, 사용법이 간단하기 때문이다.
Iterator의 정의방법은 다음과 같다.
Iterator iterator = Collection.iterator();
Iterator를 사용하려면 3가지 메서드만 알면 된다.
hasnext() : 다음 요소가 있는지 판단
next() : 다음 요소를 가져옴
remove() : 가져온 요소를 삭제
import java.util.ArrayList;
import java.util.Iterator;
public class ArrayList3 {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>( );
list.add("사과");
list.add("바나나");
list.add("귤");
list.add("오렌지");
list.add("바나나");
System.out.println("요소의 개수-> " + list.size());
System.out.println(">> Iterator 객체로 요소 열기 <<");
Iterator<String> elements = list.iterator();
// Iterator는
// 요소가 있다면 리스트를 순환할 수 있게 해주는 객체이다. ArrayList과 HashSet에 같이 사용됨.
while(elements.hasNext()) { // 요소가 있으면 출력하는것
// 요소를 얻어내어 출력
System.out.print(elements.next()+"\t");
}
System.out.println("\n");
System.out.println(">> get 메소드 요소 얻기 <<");
// 고수들은 ArrayList 와 Iterator를 많이 쓴다.
for (int i = 0; i<list.size(); i++)
System.out.print(list.get(i)+"\t");
System.out.println();
}
}
요소의 개수-> 5
Iterator 객체로 요소 열기 <<
사과 바나나 귤 오렌지 바나나
get 메소드 요소 얻기 <<
사과 바나나 귤 오렌지 바나나