Close

Java Collections - Collections.unmodifiableSortedMap() Examples

[Last Updated: Dec 11, 2025]

Java Collections Java Java API 


Class:

java.util.Collections

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

Method:

public static <K,V> SortedMap<K,V> unmodifiableSortedMap(SortedMap<K,? extends V> m)

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


Examples


Since the SortedMap 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.SortedMap;
import java.util.TreeMap;

public class UnmodifiableSortedMapExample {

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

Output

Original Map: {1=one, 2=two}
unmodifiableSortedMap: {1=one, 2=two}
unmodifiableSortedMap: {1=one}
JDK 25




Modifying itself will throw the exception:

package com.logicbig.example.collections;

import java.util.*;

public class UnmodifiableSortedMapExample2 {

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

Output

Original Map: {1=one, 2=two}
java.lang.UnsupportedOperationException
at java.util.Collections$UnmodifiableMap.remove (Collections.java:1667)
at com.logicbig.example.collections.UnmodifiableSortedMapExample2.main (UnmodifiableSortedMapExample2.java:19)
at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:104)
at java.lang.reflect.Method.invoke (Method.java:565)
at org.codehaus.mojo.exec.AbstractExecJavaBase.executeMainMethod (AbstractExecJavaBase.java:402)
at org.codehaus.mojo.exec.ExecJavaMojo.executeMainMethod (ExecJavaMojo.java:142)
at org.codehaus.mojo.exec.AbstractExecJavaBase.doExecClassLoader (AbstractExecJavaBase.java:377)
at org.codehaus.mojo.exec.AbstractExecJavaBase.lambda$execute$0 (AbstractExecJavaBase.java:287)
at java.lang.Thread.run (Thread.java:1474)
JDK 25




See Also