자바 반복자
자바 반복자
An 은 ArrayList
및 HashSetIterator
과 같은 컬렉션을 반복하는 데 사용할 수 있는 개체입니다 . "반복"이 루핑에 대한 기술 용어이기 때문에 "반복자"라고 합니다.
java.util
Iterator를 사용하려면 패키지 에서 가져와야 합니다 .
반복자 얻기
이 iterator()
메서드는 Iterator
모든 컬렉션에 대해 가져오는 데 사용할 수 있습니다.
예시
// Import the ArrayList class and the Iterator class
import java.util.ArrayList;
import java.util.Iterator;
public class Main {
public static void main(String[] args) {
// Make a collection
ArrayList<String> cars = new ArrayList<String>();
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");
// Get the iterator
Iterator<String> it = cars.iterator();
// Print the first item
System.out.println(it.next());
}
}
컬렉션 루핑
컬렉션을 반복하려면 다음 hasNext()
및 next()
메서드를 사용합니다 Iterator
.
예시
while(it.hasNext()) {
System.out.println(it.next());
}
컬렉션에서 항목 제거
반복자는 반복되는 컬렉션을 쉽게 변경하도록 설계되었습니다. 이 remove()
메서드는 반복하는 동안 컬렉션에서 항목을 제거할 수 있습니다.
예시
반복자를 사용하여 컬렉션에서 10보다 작은 숫자를 제거합니다.
import java.util.ArrayList;
import java.util.Iterator;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> numbers = new ArrayList<Integer>();
numbers.add(12);
numbers.add(8);
numbers.add(2);
numbers.add(23);
Iterator<Integer> it = numbers.iterator();
while(it.hasNext()) {
Integer i = it.next();
if(i < 10) {
it.remove();
}
}
System.out.println(numbers);
}
}
참고: for 루프 또는 for-each 루프를 사용하여 항목을 제거하려고 하면 코드가 루프를 시도하는 동시에 컬렉션의 크기가 변경되기 때문에 올바르게 작동하지 않습니다.