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());
}
'프로그래밍 > JAVA' 카테고리의 다른 글
[CODILITY] MINMAXDIVISION (0) | 2020.04.01 |
---|---|
Java의 Collections (List, Set, Map) 이해 (0) | 2020.03.14 |
Hashtable, HashMap, ConcurrentHashMap 비교 (0) | 2020.02.14 |
Template 패턴 (0) | 2020.02.01 |
Builder 패턴 (0) | 2020.02.01 |
댓글