Trong hướng dẫn này, chúng ta sẽ tìm hiểu về interface Iterator trong Java với sự trợ giúp của một ví dụ.

interface Iterator của framework collection Java cho phép chúng ta truy cập các yếu tố của một bộ sưu tập. Nó có một interface con ListIterator.

Tất cả các bộ sưu tập Java bao gồm một phương thức iterator(). Phương thức này trả về một thể hiện của trình lặp được sử dụng để lặp qua các phần tử của bộ sưu tập.

1. Các phương thức của lặp lại

Các Iterator interface cung cấp 4 phương thức có thể được sử dụng để thực hiện các hoạt động khác nhau trên các yếu tố của bộ sưu tập.

  • hasNext()- trả về true nếu tồn tại một phần tử trong bộ sưu tập
  • next() – trả về phần tử tiếp theo của bộ sưu tập
  • remove() – loại bỏ phần tử cuối cùng được trả về bởi next()
  • forEachRemaining() – thực hiện hành động cụ thể cho từng phần tử còn lại của bộ sưu tập

2. Ví dụ: Triển khai lặp lại

Trong ví dụ dưới đây, chúng ta đã triển khai phương thức hasNext(), next(), remove()và forEachRemining() của Iterator interface trong một array list.

import java.util.ArrayList;
import java.util.Iterator;

class Main {
    public static void main(String[] args) {
        // Creating an ArrayList
        ArrayList<Integer> numbers = new ArrayList<>();
        numbers.add(1);
        numbers.add(3);
        numbers.add(2);
        System.out.println("ArrayList: " + numbers);

        // Creating an instance of Iterator
        Iterator<Integer> iterate = numbers.iterator();

        // Using the next() method
        int number = iterate.next();
        System.out.println("Accessed Element: " + number);

        // Using the remove() method
        iterate.remove();
        System.out.println("Removed Element: " + number);

        System.out.print("Updated ArrayList: ");

        // Using the hasNext() method
        while(iterate.hasNext()) {
            // Using the forEachRemaining() method
            iterate.forEachRemaining((value) -> System.out.print(value + ", "));
        }
    }
}

Đầu ra

ArrayList: [1, 3, 2]
Acessed Element: 1
Removed Element: 1
Updated ArrayList: 3, 2,

Trong ví dụ trên, hãy chú ý câu lệnh:

iterate.forEachRemaining((value) -> System.put.print(value + ", "));

Ở đây, chúng ta đã chuyển biểu thức lambda làm đối số của phương thức forEachRemaining().

Bây giờ phương thức sẽ in tất cả các phần tử còn lại của danh sách mảng.

Cài ứng dụng cafedev để dễ dàng cập nhật tin và học lập trình mọi lúc mọi nơi tại đây.

Nguồn và Tài liệu tiếng anh tham khảo:

Tài liệu từ cafedev:

Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:

Chào thân ái và quyết thắng!

Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!