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

Các NavigableSet interface của framework trong Java Collections cung cấp các tính năng để di chuyển giữa các yếu tố quy định.

Nó được coi là một loại SortedSet .

1. Lớp triển khai NavigableSet

Để sử dụng các hàm của NavigableSet interface, chúng ta cần sử dụng lớp TreeSet triển khai NavigableSet.

2. Làm thế nào để sử dụng NavigableSet?

Trong Java, chúng ta phải nhập gói java.util.NavigableSet để sử dụng NavigableSet. Sau khi chúng ta nhập gói, đây là cách chúng ta có thể tạo các bộ có thể điều hướng.

// SortedSet implementation by TreeSet class
NavigableSet<String> numbers = new TreeSet<>();

Ở đây, chúng ta đã tạo một tập hợp điều hướng có tên con số của lớp TreeSet.

3. Phương thức của NavigableSet

Các NavigableSet được coi là một loại SortedSet. Đó là vì NavigableSet mở rộng SortedSet interface.

Do đó, tất cả các phương thức  SortedSet cũng có sẵn trong NavigableSet. Để tìm hiểu cách thực hiện các phương thức này, hãy truy cập Java SortedSet .

Tuy nhiên, một số các phương thức SortedSet( headSet(), tailSet()và subSet()) được định nghĩa khác nhau trong NavigableSet.

Hãy xem cách các phương thức này được định nghĩa trong NavigableSet.

3.1 headSet (phần tử, booleanValue)

phương thức headSet() trả về tất cả các yếu tố của một bộ điều hướng trước khi quy định thành phần (được chuyển như một đối số).

tham số booleanValue là tùy chọn. Giá trị mặc định của nó là false.

Nếu true được thông qua dưới dạng booleanValue, phương thức trả về tất cả các phần tử trước phần tử được chỉ định bao gồm phần tử được chỉ định.

3.2 tailSet (phần tử, booleanValue)

phương thức tailSet() trả về tất cả các yếu tố của một bộ điều hướng sau khi quy định thành phần (được truyền dưới dạng đối số) bao gồm phần tử được chỉ định.

tham số booleanValue là tùy chọn. Giá trị mặc định của nó là true.

Nếu false được truyền vào dưới dạng booleanValue, phương thức trả về tất cả các phần tử sau phần tử được chỉ định mà không bao gồm phần tử được chỉ định.

3.4 subSet (e1, bv1, e2, bv2)

phương thức subSet() trả về tất cả các yếu tố giữae1 và e2 kể cả e1.

Các bv1 và bv2là các tham số tùy chọn. Giá trị mặc định củabv1là true, và giá trị mặc định củabv2là false.

Nếu false được thông qua là bv1, phương thức trả về tất cả các phần tử giữa e1 và e2mà không bao gồm e1.

Nếu trueđược thông qua làbv2, phương thức trả về tất cả các phần tử giữa e1 và e2, kể cả e1.

4. Phương thức điều hướng

Các NavigableSet cung cấp phương thức khác nhau có thể được sử dụng để điều hướng qua các yếu tố của nó.

  • LowerndingSet() – đảo ngược thứ tự của các phần tử trong một tập hợp
  • downndingIterator() – trả về một trình lặp có thể được sử dụng để lặp qua một tập hợp theo thứ tự ngược lại
  • ceiling() – trả về phần tử thấp nhất trong số các phần tử lớn hơn hoặc bằng phần tử được chỉ định
  • floor() – trả về phần tử lớn nhất trong số các phần tử nhỏ hơn hoặc bằng phần tử được chỉ định
  • cao hơn() – trả về phần tử thấp nhất trong số các phần tử lớn hơn phần tử được chỉ định
  • low() – trả về phần tử lớn nhất trong số các phần tử nhỏ hơn phần tử được chỉ định
  • pollFirst() – trả về và xóa phần tử đầu tiên khỏi tập hợp
  • pollLast​​() – trả về và xóa phần tử cuối cùng khỏi tập hợp

Để tìm hiểu thêm về NavigableSet, hãy truy cập Java NavigableSet (tài liệu Java chính thức) .

5. Triển khai NavigableSet trong TreeSet Class

/*
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/
*/

 public static void main(String[] args) {
        // Creating NavigableSet using the TreeSet
        NavigableSet<Integer> numbers = new TreeSet<>();

        // Insert elements to the set
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);
        System.out.println("NavigableSet: " + numbers);

        // Access the first element
        int firstElement = numbers.first();
        System.out.println("First Number: " + firstElement);

        // Access the last element
        int lastElement = numbers.last();
        System.out.println("Last Element: " + lastElement);

        // Remove the first element
        int number1 = numbers.pollFirst();
        System.out.println("Removed First Element: " + number1);

        // Remove the last element
        int number2 = numbers.pollLast();
        System.out.println("Removed Last Element: " + number2);

    }
}

Đầu ra

NavigableSet: [1, 2, 3]
First Element: 1
Last Element: 3
Removed First Element: 1
Removed Last Element: 3

Để tìm hiểu thêm về TreeSet, hãy truy cập Java TreeSet trong series này.

Bây giờ chúng ta đã biết về NavigableSet interface, chúng ta sẽ tìm hiểu về việc triển khai nó bằng cách sử dụng lớp TreeSet.

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!