Close

Java Collections - Collections.unmodifiableNavigableMap() Examples

Java Collections Java Java API 


Class:

java.util.Collections

java.lang.Objectjava.lang.Objectjava.util.Collectionsjava.util.CollectionsLogicBig

Method:

public static <K,V> NavigableMap<K,V> unmodifiableNavigableMap(NavigableMap<K,? extends V> m)

Returns an unmodifiable view of the specified NavigableMap. Attempts to modify the returned NavigableMap, whether direct or via its collection views or subMap/headMap/tailMap, will result in an UnsupportedOperationException.


Examples


Since the NavigableMap created by this method is a view of the original map, modifying the original will reflect the changes in it:

package com.logicbig.example.collections;

import java.util.Collections;
import java.util.NavigableMap;
import java.util.TreeMap;

public class UnmodifiableNavigableMapExample {

public static void main(String... args) {
NavigableMap<Integer, String> map = new TreeMap<>();
map.put(1, "one");
map.put(2, "two");
System.out.println("Original Map: " + map);
NavigableMap<Integer, String> map2 = Collections.unmodifiableNavigableMap(map);
System.out.println("unmodifiableNavigableMap: " + map2);
//modifying the original one
map.remove(2);
System.out.println("unmodifiableNavigableMap: " + map2);
}
}

Output

Original Map: {1=one, 2=two}
unmodifiableNavigableMap: {1=one, 2=two}
unmodifiableNavigableMap: {1=one}




Modifying itself will throw the exception:

package com.logicbig.example.collections;

import java.util.Collections;
import java.util.NavigableMap;
import java.util.TreeMap;

public class UnmodifiableNavigableMapExample2 {

public static void main(String... args) {
NavigableMap<Integer, String> map = new TreeMap<>() {};
map.put(1, "one");
map.put(2, "two");
NavigableMap<Integer, String> map2 = Collections.unmodifiableNavigableMap(map);
map2.put(3, "three");
}
}

Output

Caused by: java.lang.UnsupportedOperationException
at java.base/java.util.Collections$UnmodifiableMap.put(Collections.java:1453)
at com.logicbig.example.collections.UnmodifiableNavigableMapExample2.main(UnmodifiableNavigableMapExample2.java:20)
... 6 more




See Also