package com.java1.day20;
import java.util.*;
/* Iterator?
* 컬렉션에 저장된 각 요소에 접근하는데 사용되는 인터페이스 이다.
* List와 Set은 Collection인터페이스의 자손이므로 바로 사용이 가능하다.
* Map의 경우는 자손이 아니므로 Set의 형태로 얻어 온후에 호출해야 사용이 가능하다.
* 단방향 으로만 이동이 가능하다. 그래서 컬렉션의 마지막 요소에 다다르면 더이상 사용할수 없다.
* Enumeration 은 Iterator의 구버젼 이다. 이전 버전과의 호환을 위해서 남겨두었다.
*/
public class IteratorEx3 {
public static void main(String[] args) {
ArrayList list = new ArrayList();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
Iterator it = list.iterator(); //Iterator를 통해서 list의 요소에 접근할수 있다.
while(it.hasNext()) { //읽어올 요소가 남아있는지 확인한다. 있으면 true, 없으면 false
Object obj = it.next();//다음 요소를 읽어온다. next()호출전 hasNext()를 호출해서
//읽어올 요소가 있는지 확인하는 것이 안전하다.
System.out.println(obj);
}
}
}
/* List클래스 들은 저장순서를 유지하기 때문에 Iterator를 이용해서 읽어온 결과역시 저장 순서와 동일.
* Set 클래스 들은 각 요소간의 순서가 유지되지 않기 때문에 Iterator를 이용해서 저장된 요소를 읽어와도
* 처음에 저장된 순서와 같지않다.
*/
1
2
3
4
5