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
  1. em.hasMoreElements()가 현재 커서 이후에 요소들이 있는지 체크(맨 처음 커서는 첫번째 요소 앞에 출발점에 있음)
  2. em.nextElement()를 통해 요소를 꺼내고 현재 커서를 다음 요소로 이동
  3. 반복문을 통해 다음 요소가 없으면 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
  1. it.hasNext()가 현재 커서 이후에 요소들이 있는지 체크(맨 처음 커서는 첫번째 요소 앞에 출발점에 있음)
  2. it.next()를 통해 요소를 꺼내고 현재 커서를 다음 요소로 이동
  3. 반복문을 통해 다음 요소가 없으면 false로 반복문 종료

 

 

출처 :

https://tiboy.tistory.com/481

https://byungmin.tistory.com/13