-
Iterator, Enumeration 인터페이스Java 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
'Java' 카테고리의 다른 글
String, StringBuffer, StringBuilder (0) 2023.08.31 정규식 사용법 (0) 2023.08.18 Set (0) 2023.06.27 List (0) 2023.06.27 날짜 클래스 (자바 8 이후) (0) 2023.06.27