본문 바로가기
개발공부 개발새발/JAVA

JAVA) 자바의 정석 기초편 : Iterator 예제

by 휴일이 2022. 10. 21.

Collection 인터페이스를 구현한 List와 Set만 쓸 수 있는 일회용 추출기(?)

리스트 자체를 Iterator에 넣고 돌리면

객체가 하나씩 반환 된다!

 

 

보통 while문과 같이 사용된다 (예제 확인)

package JavaChapter11;

import java.util.ArrayList;
import java.util.Iterator;


public class Ex11_5 {
    public static void main(String[] args) {

        ArrayList list = new ArrayList();
        list.add("1");
        list.add("2");
        list.add("3");
        list.add("4");
        list.add("5"); //list에 객체 하나씩 넣기

        Iterator it = list.iterator(); //그 list를 iterator에 넣기

        while(it.hasNext()) { //hasNext() <-iterator에 요소가 들어있나요?(하나씩 커서 옮기듯이 옆으로)
            Object obj = it.next(); //있으면 obj에 반환
            System.out.println(obj); //obj 출력
        }

    }
}

 

결과

 

 

it.hasNext() 읽어올 요소가 있나요?

it.next() 요소 읽어오기

 

 

 

 

 

그런데,

Map은 Collection 인터페이스를 구현하지 않아서 Iterator로 불러올 수 없다

그럴 땐, Map을 Set으로 변환해서 Iterator에 넣으면 된다!

 

 

Map을 Set으로 변환해서 Iterator에 넣기

package JavaChapter11;

import java.util.*;


public class Ex11_5 {
    public static void main(String[] args) {

        Map<String, String> map = new HashMap<String, String>(); //HashMap 만들기
        map.put("1","a");
        map.put("2","b");
        map.put("3","c");
        map.put("4","d");
        map.put("5","e"); //요소 추가

        
//        Set eSet = map.entrySet();
//        Iterator it = eSet.iterator();
        //위와 아래는 같은 코드
        
        //맵을 셋으로 변환한 후, iterator로 넣는다
        Iterator it = map.entrySet().iterator();


        while(it.hasNext()) { //요소 확인
            System.out.println(it.next()); //출력
        }

    }
}

 

결과

728x90