📜  Java中的集合 unmodifiableSortedMap() 方法及示例(1)

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

Java中的集合 unmodifiableSortedMap() 方法及示例

在Java中,unmodifiableSortedMap() 方法返回一个不可修改的排序映射。这意味着通过该方法返回的映射是只读的,任何试图修改该映射的操作都将导致抛出 UnsupportedOperationException 异常。该方法可以在需要保护数据不被修改的情况下使用,同时仍然使得数据可以被读取。

方法签名
public static <K,V> SortedMap<K,V> unmodifiableSortedMap(SortedMap<? extends K? extends V> m);

该方法将返回一个由输入映射参数支持的不可修改的映射。

示例

下面的示例演示了如何使用 unmodifiableSortedMap() 方法将一个普通的排序映射转换为只读映射。

import java.util.*;

public class Main {
   public static void main(String[] args) {
      // 创建待转换的映射
      TreeMap<Integer,String> originalMap = new TreeMap<>();
      originalMap.put(1,"one");
      originalMap.put(2,"two");
      originalMap.put(3,"three");
      
      // 转换为只读映射
      SortedMap<Integer,String> readOnlyMap = Collections.unmodifiableSortedMap(originalMap);
      
      // 尝试修改只读映射,将会抛出 UnsupportedOperationException 异常
      readOnlyMap.put(4,"four");
   }
}

在上面的示例中,我们通过创建一个 TreeMap 来演示如何将其转换为只读映射。我们使用 Collections.unmodifiableSortedMap() 方法将其转换为一个只读映射,并尝试在只读映射上执行修改操作,结果是抛出了一个 UnsupportedOperationException 异常。

总结

unmodifiableSortedMap() 方法返回一个只读的排序映射,不能对返回的映射进行修改。该方法可以在需要保护数据不被修改的情况下使用,同时仍然使得数据可以被读取。