📜  Java Collections unmodifiableNavigableMap​() 方法及示例(1)

📅  最后修改于: 2023-12-03 15:15:55.691000             🧑  作者: Mango

Java Collections unmodifiableNavigableMap() 方法及示例

方法介绍

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() 方法返回的集合是只读的,因此无法修改。

如果想要进行操作,则需使用原始映射。