Skip to main content

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.

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();