Trình lặp lại Java
Trình lặp lại Java
An Iterator
là một đối tượng có thể được sử dụng để lặp qua các bộ sưu tập, như ArrayList
và HashSet . Nó được gọi là "trình lặp" vì "lặp" là thuật ngữ kỹ thuật để chỉ vòng lặp.
Để sử dụng một Iterator, bạn phải nhập nó từ java.util
gói.
Bắt một lặp lại
Phương iterator()
thức này có thể được sử dụng để lấy một Iterator
bộ sưu tập bất kỳ:
Thí dụ
// 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());
}
}
Vòng qua một bộ sưu tập
Để lặp qua một bộ sưu tập, hãy sử dụng các phương thức hasNext()
và của :next()
Iterator
Thí dụ
while(it.hasNext()) {
System.out.println(it.next());
}
Xóa các mục khỏi bộ sưu tập
Các trình lặp được thiết kế để dễ dàng thay đổi các tập hợp mà chúng lặp qua. Phương remove()
thức này có thể xóa các mục khỏi bộ sưu tập trong khi lặp lại.
Thí dụ
Sử dụng một trình lặp để xóa các số nhỏ hơn 10 khỏi một tập hợp:
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);
}
}
Lưu ý: Việc cố gắng xóa các mục bằng vòng lặp for hoặc vòng lặp for-each sẽ không hoạt động chính xác vì bộ sưu tập đang thay đổi kích thước cùng lúc mã đang cố gắng lặp lại.