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

Các ListIterator interface của framework trong Java cung cấp các hàm để các yếu tố tiếp cận của một danh sách.

Nó là hai chiều. Điều này có nghĩa là nó cho phép chúng ta lặp lại các phần tử của danh sách theo cả hai hướng.

Nó mở rộng từ Iterator interface.

Các List interface cung cấp một phương thức listIterator() trả về một thể hiện của ListIterator interface.

1. Phương thức của ListIterator

Các ListIterator interface cung cấp 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 một danh sách.

  • hasNext() – trả về true nếu có một phần tử trong danh sách
  • next() – trả về phần tử tiếp theo của danh sách
  • nextIndex()trả về chỉ mục của phần tử mà phương thức next() sẽ trả về
  • previous() – trả về phần tử trước đó của danh sách
  • previousIndex()- trả về chỉ mục của phần tử mà phương thức previous() sẽ trả về
  • remove()- loại bỏ phần tử được trả về bởi một trong hai next()hoặc previous()
  • set()- thay thế phần tử được trả về bởi một trong hai next()hoặc previous()bằng phần tử được chỉ định

Ví dụ 1: Triển khai ListIterator

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

/*
Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
@author cafedevn
Contact: cafedevn@gmail.com
Fanpage: https://www.facebook.com/cafedevn
Group: https://www.facebook.com/groups/cafedev.vn/
Instagram: https://instagram.com/cafedevn
Twitter: https://twitter.com/CafedeVn
Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
Pinterest: https://www.pinterest.com/cafedevvn/
YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
*/

import java.util.ArrayList;
import java.util.ListIterator;

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 ListIterator
        ListIterator<Integer> iterate = numbers.listIterator();

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

        // Using the nextIndex()
        int index1 = iterate.nextIndex();
        System.out.println("Position of Next Element: " + index1);

        // Using the hasNext() method
        System.out.println("Is there any next element? " + iterate.hasNext());
    }
}

Đầu ra

ArrayList: [1, 3, 2]
Next Element: 1
Position of Next Element: 1
Is there any next element? true

Ví dụ 2: Triển khai ListIterator

Trong ví dụ dưới đây, chúng tôi đã triển khai các phương thức previous()và interface trong danh sách mảng .previousIndex()ListIterator

import java.util.ArrayList;
import java.util.ListIterator;

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 ListIterator
        ListIterator<Integer> iterate = numbers.listIterator();
        iterate.next();
        iterate.next();

        // Using the previous() method
        int number1 = iterate.previous();
        System.out.println("Previous Element: " + number1);

        // Using the previousIndex()
        int index1 = iterate.previousIndex();
        System.out.println("Position of the Previous element: " + index1);
    }
}

Đầu ra

ArrayList: [1, 3, 2]
Previous Element: 3
Position of the Previous Element: 0

Trong ví dụ trên, ban đầu, thể hiện của Iterator là trước 1. Vì không có phần tử nào trước 1 nên việc gọi phương thức previous() sẽ ném ra một ngoại lệ.

Sau đó chúng tôi sử dụng các phương thức next() 2 lần. Bây giờ Iterator trường hợp sẽ nằm trong khoảng từ 3 đến 2.

Do đó, phương thức previous() trả về 3.

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!