📜  Java中的集合 unmodifiableMap() 方法和示例(1)

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

Java中的集合 unmodifiableMap() 方法

在Java中,通过使用集合(Collection)可以方便地操作一组对象,其中包括List、Set和Map等。其中,Map是一种键值对集合,它将键映射到值上。而在Java的Map接口中,unmodifiableMap() 方法提供了一种不可变的集合,它提供一个只读的视图,不能向其中添加、删除、修改元素,从而保护了集合中的元素不被意外地修改或删除。

unmodifiableMap() 方法的语法
public static <K,V> Map<K,V> unmodifiableMap(Map<? extends K,? extends V> m)
unmodifiableMap() 方法的参数

unmodifiableMap() 方法接收一个Map类型的参数m,该参数是需要转换成不可变集合的Map。

unmodifiableMap() 方法的返回值

unmodifiableMap() 方法返回一个不可变集合,其元素与参数m相同。

unmodifiableMap() 方法的示例
import java.util.*;

public class UnmodifiableMapExample {
   public static void main(String args[]) {
      Map<String, String> map = new HashMap<String, String>();
      map.put("1", "One");
      map.put("2", "Two");
      map.put("3", "Three");

      System.out.println("Initial Map : "+map);

      Map<String, String> unmodifiableMap = Collections.unmodifiableMap(map);

      System.out.println("Unmodifiable Map : "+unmodifiableMap);

      // try to modify the unmodifiable map
      try {
         unmodifiableMap.put("4", "Four");
      } catch(Exception e) {
         System.out.println("Exception while modifying unmodifiable map : "+e.getMessage());
      }
   }
}

在例子中,我们创建了一个HashMap实例map,添加了三个键值对。我们使用unmodifiableMap() 方法创建了一个不可变的集合unmodifiableMap,该集合与map包含了相同的元素。我们尝试向unmodifiableMap中添加另一个键值对,但是它会抛出一个异常,因为它是不可变的。

输出结果如下:

Initial Map : {1=One, 2=Two, 3=Three}
Unmodifiable Map : {1=One, 2=Two, 3=Three}
Exception while modifying unmodifiable map : null
总结

unmodifiableMap() 方法提供了一个只读的不可变集合,使得程序员可以保护集合中的元素不被修改或删除。如果程序需要一个只读的Map,使用unmodifiableMap() 方法可以简化代码,并提高程序的安全性。