2017년 9월 12일 화요일

반복자 JAVA iterator

이터레이터(Iterator) 인터페이스
- 모든 컬렉션(Collection)으로 부터 정보를 얻을 수 있는 인터페이스 입니다.
- 즉, 자신이 컬렉션(List, Set 등)이라면 이터레이터 인터페이스를 사용할 수 있습니다.
도서관에 비유
- 우리가 책을 보관하는 책장(컬렉션)이 있고, 그 곳에는 책(컬렉션 안에 들어갈 객체)이 있습니다.
- 이 책장은 도서관 사서(이터레이터)가 관리하게 됩니다.
- 사서는 단순 무지한 녀석이라 책장 처음부터 끝까지 한번에 하나씩 밖에 못 가져옵니다.
이터레이터가 가지고 있는 메서드
- boolean hasNext() : 다음 값이 있는지 없는지 확인, 있으면 true를 리턴하고 없으면 false를 리턴 --> if나 while문에서 쓰면 되겠죠?
- E next() : 다음 값을 리턴합니다. 어떤 형태인지 모르기 때문에 리턴 유형을 E로 하겠습니다.
- void remove() : 삭제 하는 메서드


 Set<String> movie = new HashSet<String>();

    movie.add("대부");
    movie.add("반지의 제왕");
    movie.add("겨울왕국");
    movie.add("다크 나이트");
    movie.add("해리포터");
    movie.add("공공의 적");

    Iterator<String> itr = movie.iterator();
    // 이터레이터 객체 itr에 HashSet객체인 movie안에 있는 값들을 가져온다
    // 모든 컬렉션 안에는 iterator()메서드가 있기 때문에 점찍고 사용하면 movie안에 있는 값들을 가져올 수 있다
    while (itr.hasNext()) { // 값이 나올때까지 while문을 돈다
      String s = itr.next()// 문자열 변수 s에 다음값을 넣는다
      System.out.println(s);
    }

출처: http://bitnori.tistory.com/entry/JAVA-JAVA-ITERATOR-자바-이터레이터 [Bitnori's Blog]


출처: http://bitnori.tistory.com/entry/JAVA-JAVA-ITERATOR-자바-이터레이터 [Bitnori's Blog]

댓글 없음:

댓글 쓰기