📚 Study/Java
JAVA :: Test164_Enumeration 과 Iterator 인터페이스
bono-hye
2023. 10. 8. 01:50
▼ Enumeration 과 Iterator 인터페이스에 대한 설명
/*
○ Enumeration 과 Iterator 인터페이스
Collection Framework 에는
Enumeration 과 Iterator 라는 인터페이스가 있다.
사전적인 의미로는 반복, 순환 이라는 의미를 가지고 있으며
어떤 객체들의 모임이 있을 때,
이 객체들을 어떤 순서에 의해 하나씩 접근하여 사용하기 위한
인터페이스라고 할 수 있다.
- java.util.Enumeration<E> 인터페이스
: 이 인터페이스는 단지 두 개의 메소드만을 제공하며
『hasMoreElements()』 메소드를 통해
인터페이스 안에 다음 요소가 있는지에 대한 질의를 한다.
만약 true가 반환되었다면 다음 인덱스에 요소가 존재한다는 의미이며
『nextElement()』 메소드로 다음 요소에 접근하여 사용하면 되는 것이다.
ex) v 라는 벡터 자료구조에 저장된 모든 요소 출력
for (Enumeration e = v.element(); e.hasMoreElements();)
{
System.out.println(e.nextElement());
}
- java.util.Iterator<E> 인터페이스
: Enumeration 과의 차이점은 단지 『remove()』 메소드가 추가된 것 뿐이다.
Iterator 가 가지고 있는 『hasNext()』와 『next()』 메소드는
이름만 약간 다를 뿐 Enumeration 인터페이스가 가지고 있는
『hasMoreElements()』와 그리고 『nextElement()』와
정확히 일치하는 기능을 수행한다.
Enumeration 대신 Iterator 를 JDK 1.2 부터 추가하여 사용하게 된 이유는
Enumeration 인터페이스는 집합 내에서 요소를 제거할 방법이 없기 때문에
이를 보완하기 위해 나온 것이 Iterator 인터페이스이다.
*/
▼ Test164
import java.util.Vector;
import java.util.Enumeration;
import java.util.Iterator;
public class Test164
{
public static void main(String[] args)
{
// 벡터 자료구조 인스턴스 생성
Vector<String> v = new Vector<String>();
// 벡터 자료구조 v에 요소 추가
v.add("Java");
v.add("Oracle");
v.add("Jsp");
v.add("Servlet");
v.add("Spring");
// ① Enumeration
// - hasMoreElements()
// - nextElement()
Enumeration<String> e = v.elements();
while (e.hasMoreElements())
System.out.println(e.nextElement());
System.out.println();
//--==>> Java
// Oracle
// Jsp
// Servlet
// Spring
System.out.println("------------------------------");
// ② Iterator
// - hasNext()
// - next()
Iterator<String> it = v.iterator();
while(it.hasNext())
System.out.println(it.next());
System.out.println();
//--==>> Java
// Oracle
// Jsp
// Servlet
// Spring
}
}