ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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
    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

     

    '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
Designed by Tistory.