Close

Java Collections - Collections.checkedSortedMap() 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> checkedSortedMap(SortedMap<K,V> m,
                                                    Class<K> keyType,
                                                    Class<V> valueType)

Returns a dynamically typesafe view of the specified SortedMap.


Examples


package com.logicbig.example.collections;

import java.util.Map;
import java.util.SortedMap;
import java.util.TreeMap;

public class CheckedSortedMapExample {

public static void main(String... args) {
SortedMap<Integer, String> map = new TreeMap<>();
map.put(1, "one");
System.out.println(map);

Map map2 = map;
map2.put(2, 3);
System.out.println(map2);
}
}

Output

{1=one}
{1=one, 2=3}
JDK 25




Using checkedSortedMap:

package com.logicbig.example.collections;

import java.util.Collections;
import java.util.Map;
import java.util.SortedMap;
import java.util.TreeMap;

public class CheckedSortedMapExample2 {

public static void main(String... args) {
SortedMap<Integer, String> map = new TreeMap<>();
map = Collections.checkedSortedMap(map, Integer.class, String.class);
map.put(1, "one");
System.out.println(map);

Map map2 = map;
map2.put(2, 3);
System.out.println(map2);
}
}

Output

{1=one}
java.lang.ClassCastException: Attempt to insert class java.lang.Integer value into map with value type class java.lang.String
at java.util.Collections$CheckedMap.typeCheck (Collections.java:4021)
at java.util.Collections$CheckedMap.put (Collections.java:4064)
at com.logicbig.example.collections.CheckedSortedMapExample2.main (CheckedSortedMapExample2.java:23)
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