목차
- Iterator (반복자) 정의
- Iterator (반복자) 얻기 - iterator() 메서드
- 컬렉션 반복 - while 반복문 / hasNext(), next() 메서드
- 컬렉션에서 요소 제거 - remove() 메서드
Iterator (반복자) 정의
ArrayList 및 HashSet 같은 컬렉션 반복에 사용 가능한 객체.
PS.
반복자는 java.util 패키지에서 가져와야 사용 가능.
import java.util.Iterator;
Iterator (반복자) 얻기 - iterator() 메서드
iterator() 메서드 사용해 컬렉션에 대한 Iterator 얻기 가능.
[예제] Hz.java
import java.util.ArrayList;
import java.util.Iterator;
public class Hz {
public static void main(String[] args) {
// collection 생성.
ArrayList<String> codes = new ArrayList<String>();
codes.add("HTML");
codes.add("CSS");
codes.add("JS");
codes.add("PHP");
// iterator 얻기.
Iterator<String> it = codes.iterator();
// 1번째 요소 출력.
System.out.println(it.next());
}
}
결과값: HTML
컬렉션 반복 - while 반복문 / hasNext(), next() 메서드
반복자의 hasNext() 및 next() 메서드 이용해 컬렉션 반복 가능.
※ 컬렉션 (collection) : '배열' 같은 자료 집합.
[예제] Hz.java
import java.util.ArrayList;
import java.util.Iterator;
public class Hz {
public static void main(String[] args) {
// collection 생성.
ArrayList<String> codes = new ArrayList<String>();
codes.add("HTML");
codes.add("CSS");
codes.add("JS");
codes.add("PHP");
// iterator 얻기.
Iterator<String> it = codes.iterator();
// collection 반복.
while(it.hasNext()) {
System.out.println(it.next());
}
}
}
결과값:
HTML
CSS
JS
PHP
컬렉션에서 요소 제거 - remove() 메서드
반복자의 remove() 메서드 사용해 컬렉션의 특정 요소 제거 가능.
[주의]
while 반복문에서는 정상작동하나,
for/for_each() 반복문에서는 정상 작동 X.
(∵ 반복 시도 중에 컬렉션 크기가 변동되므로.
[예제] Hz.java
import java.util.ArrayList;
import java.util.Iterator;
public class Hz {
public static void main(String[] args) {
ArrayList<Integer> nums = new ArrayList<Integer>();
nums.add(1);
nums.add(3);
nums.add(5);
nums.add(7);
Iterator<Integer> it = nums.iterator();
while(it.hasNext()) {
Integer i = it.next();
if(i < 5) {
it.remove();
}
}
System.out.println(nums);
}
}
결과값: [5, 7]
최신댓글