컬렉션에 저장된 요소를 읽는 Iterator

SionBackEnd·2022년 7월 3일
0

자바 스터디

목록 보기
4/21
post-thumbnail

Iterator

설명: 일반 배열같은 경우는 index번호로 값을 읽어올수있지만, 자바의 컬렉션 프레임워크에서는 컬렉션에 저장된 요소를 읽어오는 방법을 Iterator 인터페이스로 표준화하고 있다. Iterator 인터페이스를 구현한 클래스의 인스턴스를 반환하는 iterator() 메서드를 정의하여 각 요소에 접근하도록 한다.

List와 Set 인터페이스에서 iterator()메서드를 사용할 수 있다.

Iterator 메서드

  • boolean / hasNext() / 가져올 객체가 있으면 true를 리턴하고, 없으면 false를 리턴한다
  • void / next() / 컬렉션에서 하나의 객체를 가져온다
  • void / remove() / 컬렉션에서 객체를 제거한다 (사용할때는 반드시 next다음에 사용해야함)

사용 예제

import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;

public class basic {
    public static void main(String[] args) {
        Set<String> set = new TreeSet<>();
        set.add("안녕");
        set.add("하세요");
        set.add("자바를");
        set.add("공부합시다.");
        System.out.println("set안에 남은 객체들: "+set);

        Iterator<String> iterator = set.iterator();
        System.out.println("set 내부 객체 출력: ");
        while (iterator.hasNext()){
            System.out.print(iterator.next()+" ");
            iterator.remove(); //remove메소드는 반드시 next메소드 다음에 써야 된다. 반드시!
        }
        System.out.println();
        System.out.println("set안에 남은 객체들: "+set);
    }
}

remove메서드는 set.iterator(); 이부분에 들어온 컬렉션의 객체들을 제거해준다. remove메서드를 사용하지 않으면 set내부객체들은 남아있다.

profile
많은 도움 얻어가시길 바랍니다!

0개의 댓글