본문 바로가기
IT/Java

[Java] Iterator

by 성준하이 2023. 9. 21.
반응형

이전 포스팅에서 List, Set, Map 에 대해서 다룬 글이 있다.

자세한 사항은 참고 포스팅 참고 바란다.

 

포스팅에서는 이 컬렉션 프레임워크(Collection Framework) 들에서 공통으로 사용할수 있는 클래스를 설명하려 한다.

Util 하위에 있는 Iterator 이다.

 

사용법은 간단하다.

아래 예시코드로 바로 설명하면

public static void main(String[] args) {
    ArrayList<String> list = new ArrayList<String>();
    list.add("A");
    list.add("B");
    list.add("C");

    HashSet<String> set = new HashSet<String>();
    set.add("A");
    set.add("B");
    set.add("C");

    HashMap<String,String> map = new HashMap<String,String>();
    map.put("A","1");
    map.put("B","2");
    map.put("C","3");

    Iterator<String> iterList = list.iterator();
    Iterator<String> iterSet = set.iterator();
    Iterator<String> iterMap = map.keySet().iterator();

    while(iterList.hasNext()) {
        System.out.println(iterList.next());
    }

    while(iterSet.hasNext()) {
        System.out.println(iterSet.next());
    }

    while(iterMap.hasNext()) {
        System.out.println(iterMap.next());
    }
}

 

일단 각각 List, Set, Map을 만들었고 Iterator 를 각각 선언 후에 while 반복문에서 값을 하나씩 읽어서 출력하는 코드이다.

 

장점으로는 위 3개에 추가로 Queue 등등 컬렉션프레임워크에서 동일하게 사용이 가능하다.

 

단점으로는

1. 처음부터 끝까지의 단방향 반복만 가능
2. 값을 변경하거나 추가가 불가능
3. 대량의 데이터를 제어할 때 속도가 느림

등이 있다.

 

사용은 총  3개의 메서드만 알면 되기에 간단하다.

Iterator.hasNext()
- Iterator 안에 다음 값이 들어있는지 확인 (있으면 true, 없으면 false)

주로 while 조건으로 사용한다.

Iterator.next()
- iterator의 다음 값 가져오기

주로 값을 가져오는 부분에서 사용한다.

Iterator.remove()
- iterator에서 next() 시에 가져왔던 값을 컬렉션(List, Set, Map) 등에서 삭제시 사용
반드시 next() 후에 사용해야 한다.


참고 포스팅

https://thenicesj.tistory.com/282

 

Map, Set, List 에 대해서

이번 포스팅에서는 자바에서 arraylist나 배열 말고 값을 저장할수 있는 또 다른 형태인 map, set, list 에 대해 다뤄보려고 한다. 구조는 다음과 같다. 먼저 각각에 대해 알아보면 list 순서와 중복이

thenicesj.tistory.com

 

반응형

댓글