📅  最后修改于: 2023-12-03 15:15:55.691000             🧑  作者: Mango
unmodifiableNavigableMap()
方法返回一个不可修改的集合,该集合是根据指定映射的比较器排序而成的可导航映射。
该方法是通过 Collections.unmodifiableNavigableMap()
调用实现的。
public static <K,V> NavigableMap<K,V> unmodifiableNavigableMap(NavigableMap<? extends K,? extends V> m)
m
要进行包装的可导航映射。返回一个不可修改的集合,其中的映射是根据指定映射的比较器排序而成的。
import java.util.Collections;
import java.util.NavigableMap;
import java.util.TreeMap;
public class Main {
public static void main(String[] args) {
NavigableMap<String, Integer> original = new TreeMap<>();
original.put("a", 1);
original.put("b", 2);
original.put("c", 3);
NavigableMap<String, Integer> unmodifiable = Collections.unmodifiableNavigableMap(original);
// 抛出 UnsupportedOperationException 异常
unmodifiable.put("d", 4);
System.out.println("Original map: " + original);
System.out.println("Unmodifiable map: " + unmodifiable);
}
}
输出结果:
Exception in thread "main" java.lang.UnsupportedOperationException
at java.base/java.util.Collections$UnmodifiableMap.put(Collections.java:1457)
at Main.main(Main.java:12)
从输出结果看,调用 unmodifiableNavigableMap()
方法生成的集合是不可修改的,因此尝试向其中添加值时会抛出 UnsupportedOperationException
异常。
unmodifiableNavigableMap()
方法返回的集合是只读的,因此无法修改。
如果想要进行操作,则需使用原始映射。