Java.util.Collections 类

java.util.Collections.unmodifyingMap() 方法返回指定map的不可修改视图。

语法

public static <K,V> Map<K,V> unmodifiableMap(Map<? extends K,? extends V> m)

这里,K和V分别是map维护的key和value的类型。

参数

m 指定要返回不可修改视图的map。

返回值

返回指定map的不可修改视图。

异常

无。

示例:

在在下面的示例中,java.util.Collections.unmodifyingMap() 方法返回给定map的不可修改视图。

import java.util.*;

public class MyClass {
  public static void main(String[] args) {
    //创建Map对象
    Map<Integer, String> MyMap = new HashMap<Integer, String>();

    //填充MyMap
    MyMap.put(101, "John");
    MyMap.put(102, "Marry");
    MyMap.put(103, "Kim");

    //打印map
    System.out.println("MyMap contains: " + MyMap); 

    //创建不可修改的map视图
    Map NewMap = Collections.unmodifiableMap(MyMap);

    //打印不可修改的map
    System.out.println("NewMap contains: " + NewMap); 

    //尝试修改NewMap
    NewMap.put(104, "Ramesh");    
  }
}

上述代码的输出将为:

MyMap contains: {101=John, 102=Marry, 103=Kim}
NewMap contains: {101=John, 102=Marry, 103=Kim}

Exception in thread "main" java.lang.UnsupportedOperationException
    at java.base/java.util.Collections$UnmodifiableMap.put(Collections.java:1457)
    at MyClass.main(MyClass.java:23)