Java
Iterator, Enumeration 인터페이스
개발게발
2023. 6. 30. 01:26
ArrayList, HashSet 등은 Iterator
Vector, Hashtable 등은 Enumeration
Enumeration
boolean hasMoreElements()
- boolean 타입을 반환
- 현재 커서 이후에 요소들이 있는지 여부를 체크
- 요소가 있으면 true, 없으면 false를 반환
- 맨 처음 커서는 첫번째 요소 직전에 위치
E nextElement()
- E 타입을 반환(E는 nextElement 객체를 생성할 때 쓰는 타입과 동일하게 지정한다.)
- 커서를 다음 요소로 이동 시키고, 가리키고 있는 요소 객체를 꺼내 반환한다.
import java.util.*;
public class Program{
public static void main(String[] args) {
Vector<Integer> v = new Vector<>();
v.add(3);
v.add(12);
v.add(51);
Enumeration<Integer> em = v.elements();
System.out.println("em.hasMoreElements() : " + em.hasMoreElements());
while(em.hasMoreElements()) {
int val = em.nextElement();
System.out.println(val);
}
}
}
em.hasMoreElements() : true
3
12
51
- em.hasMoreElements()가 현재 커서 이후에 요소들이 있는지 체크(맨 처음 커서는 첫번째 요소 앞에 출발점에 있음)
- em.nextElement()를 통해 요소를 꺼내고 현재 커서를 다음 요소로 이동
- 반복문을 통해 다음 요소가 없으면 false로 반복문 종료
Iteration
boolean hasNext()
- Enmeration의 hasMoreElements() 메소드와 같은 역할
E next()
- Enmeration의 nextElement() 메소드와 같은 역할
import java.util.*;
public class Program{
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("tomato");
Iterator<String> it = list.iterator();
System.out.println("it.hasNext() : " + it.hasNext());
while(it.hasNext()) {
String str = it.next();
System.out.println(str);
}
}
}
it.hasNext() : true
apple
banana
tomato
- it.hasNext()가 현재 커서 이후에 요소들이 있는지 체크(맨 처음 커서는 첫번째 요소 앞에 출발점에 있음)
- it.next()를 통해 요소를 꺼내고 현재 커서를 다음 요소로 이동
- 반복문을 통해 다음 요소가 없으면 false로 반복문 종료
출처 :
https://byungmin.tistory.com/13