Java NavigableMap
NavigableMap adalah turunan dari SortedMap, namun NagivableMap memiliki kemampuan navigasi berdasarkan operasi kurang dari, lebih dari dan sejenisnya. misal, kita ingin mengambil data yang lebih dari key x atau kurang dari key y, ini bisa dilakukan di NavigableMap.
NavigableMap memiliki implementasi class TreeMap.

source: https://codingbison.com//java-collections/java-collections-navigable-map-interface.html
Contoh:
import java.util.NavigableMap;
import java.util.TreeMap;
public class DemoNavigableMap {
public static void main(String[] args) {
NavigableMap<String, String> countrys = new TreeMap<String, String>();
countrys.put("in", "India");
countrys.put("zw", "Zimbabwe");
countrys.put("ug", "Uganda");
countrys.put("tn", "Tunisia");
for (var k : countrys.keySet()) {
System.out.println(k);
}
System.out.println();
System.out.println(countrys.lowerKey("ug"));
System.out.println(countrys.higherKey("tn"));
System.out.println(countrys.floorKey("vn")); // kurang dari atau samadengan
System.out.println(countrys.ceilingKey("id")); // lebih dari atau samadengan
System.out.println();
// Descending example
NavigableMap<String, String> countrysDesc = countrys.descendingMap();
for (var k : countrysDesc.keySet()) {
System.out.println(k);
}
}
}
Immutable NavigableMap
Untuk membuat NavigableMap menjadi immutable dapat menggunakan class Collections.
// Immutable NavigableMap
NavigableMap<String, String> immutableNavigableMap = Collections.unmodifiableNavigableMap(countrys);
// immutableNavigableMap.put("rs", "Russia"); // Error
// Membuat empty NavigableMap
NavigableMap<String, String> emptySortedMap = Collections.emptyNavigableMap();