Thứ Hai, 15 tháng 4, 2024

Iterator

 

Iterator

- Là một giao diện cung cấp một cách tiêu chuẩn để duyệt qua các phần tử trong một tập hợp mà không cần biết về cấu trúc nội bộ của tập hợp đó.

- Là một phần của Java Collection Framework và được sử dụng rộng rãi trong Java để truy cập và thao tác dữ liệu trong các tập hợp như ArrayList, LinkedList, HashSet, TreeMap, và nhiều loại tập hợp khác.

Giao diện Iterator chứa một số phương thức quan trọng như sau:

  1. 1. boolean hasNext(): Kiểm tra xem có phần tử tiếp theo trong tập hợp không. Trả về true nếu có, ngược lại trả về false.

  2. 2. E next(): Trả về phần tử tiếp theo trong tập hợp và di chuyển con trỏ đến phần tử tiếp theo. Nếu không có phần tử nào còn lại, ném ra ngoại lệ NoSuchElementException.

  3. 3. void remove(): Loại bỏ phần tử cuối cùng mà phương thức next() trả về từ tập hợp. Phương thức này chỉ có thể được gọi sau khi phương thức next() được gọi, và chỉ có thể được gọi một lần duy nhất giữa mỗi lần gọi next().

Iterator cung cấp một cách an toàn để duyệt qua các phần tử của một tập hợp và thực hiện các thao tác như xóa phần tử mà không gây ra lỗi ConcurrentModificationException (nếu sử dụng Iterator của Collection). Điều này làm cho nó trở thành một công cụ mạnh mẽ trong việc thao tác với dữ liệu tập hợp trong Java.


Ví dụ:

import java.util.ArrayList; import java.util.Iterator; public class IteratorExample { public static void main(String[] args) { // Tạo một danh sách ArrayList chứa các số nguyên ArrayList<Integer> numbers = new ArrayList<>(); numbers.add(1); numbers.add(2); numbers.add(3); numbers.add(4); numbers.add(5); numbers.add(6); // In ra danh sách ban đầu System.out.println("Danh sách ban đầu: " + numbers); // Sử dụng Iterator để duyệt qua danh sách và loại bỏ các số lẻ Iterator<Integer> iterator = numbers.iterator(); while (iterator.hasNext()) { int number = iterator.next(); if (number % 2 != 0) { System.out.println("Đã loại bỏ phần tử " + number); iterator.remove(); // Loại bỏ số lẻ } } // In ra danh sách sau khi loại bỏ các số lẻ System.out.println("Danh sách sau khi loại bỏ các số lẻ: " + numbers); } }

Kết quả:

Danh sách ban đầu: [1, 2, 3, 4, 5, 6] Đã loi bphn t1 Đã loi bphn t3 Đã loi bphn t5 Danh sách sau khi loi bcác slẻ: [2, 4, 6]


Không có nhận xét nào:

Đăng nhận xét