#5 Iterator

charco·2021년 5월 21일
0

나도TIL

목록 보기
6/55
post-custom-banner

Iterator 인터페이스

iterate 은 반복하다라는 뜻이다.
뭐를 반복할까?
Collection 프레임웍의 요소들을 반복해서 읽어온다.

Collection 프레임웍은 저장된 요소들을 읽어오는 방법은 표준화했다.
Collection은 Iterable을 상속하는데
Iterable 안에는 Iterator 인터페이스를 구현한 클래스를 반환하는
iterate()메서드가 선언돼있다.

아주 간략히 코드로 재현하면 이렇다.

public interface Iterator{}

public interface Iterable{
	Iterator iterate();
}

public interface Collection implements Iterator{
}

그래서 List, Set 의 자손 클래스들은 iterate() 메서드를 통해 저장된 요소들을 for 문을 쓰지 않고도 불러 올 수 있다.
Map은 Collection 인터페이스를 상속받지 않는다.
내가 헷갈려서 적어놧다.

Iterator의 메서드

Iterator 인터페이스에는 세가지 메서드가 선언돼있다.
hasNext()는 다음 요소의 존재 여부를 boolean으로 반환한다.
next()는 다음 요소를 반환한다.
remove()는 next()로 읽어온 요소를 삭제한다.

Iterator로 요소들 출력하기

보통 while문을 이용해 다음과 같이 요소들을 읽어온다.

Collection c = new ArrayList<String>();
        c.add("aaa");
        c.add("bbb");
        c.add("ccc");
		//iterate()으로 Iterator 구현 클래스의 객체 생성
        Iterator iterator = c.iterator();

		//다음 요소가 있는지 확인
        while (iterator.hasNext()){
        //다음 요소를 읽어와 출력
            System.out.println(iterator.next());
//          결과
//            aaa
//            bbb
//            ccc
profile
아직 배우는 중입니다
post-custom-banner

0개의 댓글