Iterator, Enumeration은 둘다 모두 자바에서 제공하는 컬렉션에 대해 각 컬렉션의 항목들을 순차적으로 접근하는데 사용한다.
차 이점은 Enumeration의 경우 자바의 초기버젼에서 개발되었습니다. 자바는 jdk1.2, 즉 자바2에서 많은 변화가 생겼는데, 그중에 하나가 컬렉션 클래스(Vector, List, Map, Set...)들을 컬렉션프레임웍 이라는것으로 관리하는것이다.
이때, 컬렉션프레임웍에서는 Iterator라고 해서, Enumeration의 기능을 확장해서, Collection인터페이스를 상속받은 모든 컬렉션(List, Set, Vector.)에서 Enumeration을 사용가능하게 하였다.
정 리하면, Enumeration는 자바초기버젼에서 제공되는것으로 Hashtable, Vector 에서 사용가능하다. Iterator는 jdk1.2에서 제공되는 것으로 Collection인터페이스를 구현상속한 모든 컬렉션 클래스에서 사용가능하다.
덧붙여서, Iterator는 remove()라는 메소드가 존재하여서, 원본 컬렉션의 항목을 삭제할수 있습니다.
예를 들면,
//Enumeration 사용법
Vector v = new Vector();
...
Enumeration e = v.elements();
while(e.hasMoreElements())
{
//항목들을 모두 콘솔창에 출력합니다.
System.out.println((String)e.nextElement());
}
//Iterator 사용법
HashSet set = new HashSet();
...
Iterator iter = set.iterator();
while (iter.hasNext()) {
i++;
//항목들을 모두 콘솔창에 출력합니다.
System.out.println(i + ":" + iter.next());
}
차 이점은 Enumeration의 경우 자바의 초기버젼에서 개발되었습니다. 자바는 jdk1.2, 즉 자바2에서 많은 변화가 생겼는데, 그중에 하나가 컬렉션 클래스(Vector, List, Map, Set...)들을 컬렉션프레임웍 이라는것으로 관리하는것이다.
이때, 컬렉션프레임웍에서는 Iterator라고 해서, Enumeration의 기능을 확장해서, Collection인터페이스를 상속받은 모든 컬렉션(List, Set, Vector.)에서 Enumeration을 사용가능하게 하였다.
정 리하면, Enumeration는 자바초기버젼에서 제공되는것으로 Hashtable, Vector 에서 사용가능하다. Iterator는 jdk1.2에서 제공되는 것으로 Collection인터페이스를 구현상속한 모든 컬렉션 클래스에서 사용가능하다.
덧붙여서, Iterator는 remove()라는 메소드가 존재하여서, 원본 컬렉션의 항목을 삭제할수 있습니다.
예를 들면,
//Enumeration 사용법
Vector v = new Vector();
...
Enumeration e = v.elements();
while(e.hasMoreElements())
{
//항목들을 모두 콘솔창에 출력합니다.
System.out.println((String)e.nextElement());
}
//Iterator 사용법
HashSet set = new HashSet();
...
Iterator iter = set.iterator();
while (iter.hasNext()) {
i++;
//항목들을 모두 콘솔창에 출력합니다.
System.out.println(i + ":" + iter.next());
}