Trong hướng dẫn này, chúng ta sẽ tìm hiểu về giao diện Java NavigableMap và các phương pháp của nó với sự trợ giúp của một ví dụ.
Các NavigableMap
giao diện của khuôn khổ bộ sưu tập Java cung cấp các tính năng để di chuyển giữa các mục bản đồ.
Nó được coi là một loại Bản đồ sắp xếp.
Lớp triển khai NavigableMap
Vì NavigableMap
là một giao diện nên chúng ta không thể tạo các đối tượng từ nó.
Để sử dụng các chức năng của NavigableMap
giao diện, chúng ta cần sử dụng TreeMap
lớp thực thi NavigableMap
.
Làm thế nào để sử dụng NavigableMap?
Trong Java, chúng ta phải nhập java.util.NavigableMap
gói để sử dụng NavigableMap
. Sau khi chúng tôi nhập gói, đây là cách chúng tôi có thể tạo một bản đồ có thể điều hướng.
// NavigableMap implementation by TreeMap class NavigableMap numbers = new TreeMap();
Trong đoạn mã trên, chúng ta đã tạo một bản đồ điều hướng có tên là các số của TreeMap
lớp.
Đây,
- Khóa - một số nhận dạng duy nhất được sử dụng để liên kết từng phần tử (giá trị) trong bản đồ
- Giá trị - các yếu tố được liên kết bởi các khóa trong bản đồ
Phương thức của NavigableMap
Các NavigableMap
được coi là một loại SortedMap
. Đó là vì NavigableMap
mở rộng SortedMap
giao diện.
Do đó, tất cả các SortedMap
phương pháp cũng có sẵn trong NavigableMap
. Để tìm hiểu cách các phương thức này được định nghĩa SortedMap
, hãy truy cập Java SortedMap.
Tuy nhiên, một số các phương pháp SortedMap
( headMap()
, tailMap()
và subMap()
) được định nghĩa khác nhau trong NavigableMap
.
Hãy xem cách các phương thức này được định nghĩa trong NavigableMap
.
headMap (key, booleanValue)
Các headMap()
phương pháp trả về tất cả các mục của một bản đồ điều hướng gắn liền với tất cả những phím trước khi phím nào đó (được thông qua như là một cuộc tranh cãi).
BooleanValue là một tham số tùy chọn. Giá trị mặc định của nó là false
.
Nếu true
được chuyển dưới dạng booleanValue, phương thức sẽ trả về tất cả các mục nhập được liên kết với tất cả các khóa đó trước khóa được chỉ định, bao gồm cả mục nhập được liên kết với khóa được chỉ định.
tailMap (key, booleanValue)
Các tailMap()
phương pháp trả về tất cả các mục của một bản đồ điều hướng gắn liền với tất cả những phím sau khi chìa khóa nhất định (được thông qua như là một cuộc tranh cãi), bao gồm các mục liên quan đến việc chính quy định.
BooleanValue là một tham số tùy chọn. Giá trị mặc định của nó là true
.
Nếu false
được chuyển dưới dạng booleanValue, phương thức này sẽ trả về tất cả các mục nhập được liên kết với các khóa đó sau khóa được chỉ định, mà không bao gồm mục nhập được liên kết với khóa được chỉ định.
subMap (k1, bv1, k2, bv2)
Các subMap()
phương pháp trả về tất cả các mục có liên quan với các phím giữa k1 và k2 bao gồm các mục liên quan đến k1.
Bv1 và bv2 là các tham số tùy chọn. Giá trị mặc định của bv1 là true và giá trị mặc định của bv2 là false
.
Nếu false
được chuyển dưới dạng bv1, phương thức sẽ trả về tất cả các mục nhập được liên kết với các khóa giữa k1 và k2, không bao gồm mục nhập được liên kết với k1.
Nếu true
được chuyển dưới dạng bv2, phương thức sẽ trả về tất cả các mục nhập được liên kết với các khóa giữa k1 và k2, bao gồm cả mục nhập được liên kết với k1.
Các phương pháp khác
Các NavigableMap
cung cấp phương pháp khác nhau có thể được sử dụng để xác định vị trí các mục của bản đồ.
- downdingMap () - đảo ngược thứ tự các mục nhập trong bản đồ
- LowerndingKeyMap () - đảo ngược thứ tự các phím trong bản đồ
- TrầnEntry () - trả về mục nhập có khóa thấp nhất trong số tất cả các mục nhập có khóa lớn hơn hoặc bằng khóa được chỉ định
- trầnKey () - trả về khóa thấp nhất trong số các khóa lớn hơn hoặc bằng khóa được chỉ định
- floorEntry () - trả về mục nhập có khóa cao nhất trong số tất cả các mục nhập có khóa nhỏ hơn hoặc bằng khóa được chỉ định
- floorKey () - trả về khóa cao nhất trong số các khóa nhỏ hơn hoặc bằng khóa được chỉ định
- highEntry () - trả về một mục nhập có khóa thấp nhất trong số tất cả các mục nhập có khóa lớn hơn khóa được chỉ định
- highKey () - trả về khóa thấp nhất trong số các khóa lớn hơn khóa được chỉ định
- lowEntry () - trả về một mục nhập có khóa cao nhất trong số tất cả các mục nhập có khóa nhỏ hơn khóa được chỉ định
- lowKey () - trả về khóa cao nhất trong số các khóa nhỏ hơn khóa được chỉ định
- firstEntry () - trả về mục nhập đầu tiên (mục nhập có khóa thấp nhất) của bản đồ
- lastEntry () - trả về mục nhập cuối cùng (mục nhập có khóa cao nhất) của bản đồ
- thăm dò ý kiến () - trả về và xóa mục nhập đầu tiên của bản đồ
- thăm dò ý kiến () - trả về và xóa mục nhập cuối cùng của bản đồ
Để tìm hiểu thêm, hãy truy cập Java NavigableMap (tài liệu Java chính thức).
Triển khai NavigableMap trong lớp TreeMap
import java.util.NavigableMap; import java.util.TreeMap; class Main ( public static void main(String() args) ( // Creating NavigableMap using TreeMap NavigableMap numbers = new TreeMap(); // Insert elements to map numbers.put("Two", 2); numbers.put("One", 1); numbers.put("Three", 3); System.out.println("NavigableMap: " + numbers); // Access the first entry of the map System.out.println("First Entry: " + numbers.firstEntry()); // Access the last entry of the map System.out.println("Last Entry: " + numbers.lastEntry()); // Remove the first entry from the map System.out.println("Removed First Entry: " + numbers.pollFirstEntry()); // Remove the last entry from the map System.out.println("Removed Last Entry: " + numbers.pollLastEntry()); ) )
Đầu ra
Bản đồ điều hướng: (Một = 1, Ba = 3, Hai = 2) Mục nhập đầu tiên: Một = 1 Mục nhập cuối cùng: Hai = 2 Mục nhập đầu tiên bị xóa: Một = 1 Mục nhập cuối cùng bị xóa: Hai = 2
Để tìm hiểu thêm về TreeMap
, hãy truy cập Java TreeMap.
Bây giờ chúng ta đã biết về NavigableMap
giao diện, chúng ta sẽ tìm hiểu về cách triển khai của nó bằng cách sử dụng TreeMap
lớp một cách chi tiết trong hướng dẫn tiếp theo.