Trình lặp Java
Trình lặp Java
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à "iterator" vì "iterate" là thuật ngữ kỹ thuật để chỉ vòng lặp.
Để sử dụng Iterator, bạn phải nhập nó từ gói java.util
.
Bắt một Iterator
Phương thức iterator()
có thể được sử dụng để lấy Iterator
cho bất kỳ bộ sưu tập nào:
Ví 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()); } }
Lặp 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à next()
của Iterator
:
Xóa các mục khỏi Bộ sưu tập
Các trình vòng lặp được thiết kế để dễ dàng thay đổi các bộ sưu tập mà chúng lặp qua. Phương thức remove()
có thể xóa các mục khỏi bộ sưu tập trong khi lặp.
Ví dụ
Sử dụng trình vòng lặp để xóa các số nhỏ hơn 10 khỏi bộ sưu tậ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 với mã đang cố gắng lặp lại.