본문 바로가기
프로그래밍/Java

[JAVA 이론] Iterator (반복자)

by purplebulb 2018. 10. 31.
반응형



1. 정의

- Iterator 인터페이스를 구현한 객체, Iterator( ) 메소드를 호출하면 얻을 수 있음

- 모든 컬렉션클래스의 데이터를 읽을 때 사용

 


2. Iterator 사용법

- Iterator 타입의 변수 생성, 컬렉션에 iteraotr 메소드를 값으로 넣음 (컬렉션 변수를 iteraotr값으로 변환)


 

3. Iterator 메소드

* Iterator메소드 호출 순서 : hasNext() > next() > remove()

 

(1) hasNext()

- 다음 데이터가 있는지 확인

- boolean 값으로 반환

 

(2) next()

- 컬렉션에서 하나의 객체를 가져옴

- 다음 데이터(object) 반환

 

(3) remove()

- next 메소드가 호출한 데이터를 삭제

- 반환값 없음(void)



3. 예시

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Set <String> set = ...;
Iterator<String> iterator = set.iterator( );
 
set.add("홍길동");
set.add("김철수");
 
 
// 1. Set 컬렉션에서 String 객체들을 반복해서 하나씩 가져오는 코드
 
// 저장된 객체 수만큼 반복
while(iterator.hasNext()) {
    String str = iterator.next();
}
 
// 향상된 for문, 저장된 객체 수만큼 반복
for(String str : set) {
}
 
 
// 2. Iterator의 next() 메소드로 가져온 객체 제거 : remove() 메소드 호출
while(iterator.hasNext()){
    String str = iterator.next();
    if(str.equals("홍길동")) {
        // iterator의 메소드지만 실제 Set컬렉션에서 객체가 제거됨
        iterator.remove();
    }
}




댓글