Java Collections unmodifiableMap()
Java集合类的
unmodifiableMap()方法用于获取不可修改的
语法
以下是
unmodifiableMap()方法的声明:
public static <K,V> Map<K,V> unmodifiableMap(Map<? extends K, ? extends K> m)
参数
参数 |
说明 |
必需/可选 |
m |
这是要为其返回不可修改视图的地图。 |
必需 |
返回
unmodifiableMap()方法返回指定地图的不可修改视图。
异常
不适用
示例1
import java.util.*;
public class CollectionsUnmodifiableMapExample1 {
public static void main(String[] args) {
//Create object of hash map and Add values in the map
HashMap<String,String> map = new HashMap<String,String>();
map.put("key1", "Java");
map.put("key2", "Android");
map.put("key3", "JavaScript");
System.out.println("Initial collection: "+map);
//Create unmodifiable map
Map<String,String> map2 = Collections.unmodifiableMap</span>(map);
System.out.println("Unmodifiable Map: " + map2);
map.put("key4", "lidihuo");
System.out.println("Unmodifiable Map after adding: " + map2);
}
}
输出:
Initial collection: {key1=Java, key2=Android, key3=JavaScript}
Unmodifiable Map: {key1=Java, key2=Android, key3=JavaScript}
Unmodifiable Map after adding: {key1=Java, key2=Android, key3=JavaScript, key4=lidihuo}
示例2
import java.util.*;
public class CollectionsUnmodifiableMapExample2 {
public static void main(String[] args) {
Map<Integer, String> map = new HashMap<>();
map.put(1, "one");
map.put(2, "two");
System.out.println("Initial Unmodifiable Map: "+map);
Map<Integer, String> map2 = Collections.unmodifiableMap</span>(map);
map2.put(3, "three");
}
}
输出:
Initial Unmodifiable Map: {1=one, 2=two}
Exception in thread "main" java.lang.UnsupportedOperationException
at java.base/java.util.Collections$UnmodifiableMap.put(Collections.java:1453)
at myPackage.CollectionsUnmodifiableMapExample2.main(CollectionsUnmodifiableMapExample2.java:10)
示例3
import java.util.*;
public class CollectionsUnmodifiableMapExample3 {
public static void main(String[] args) {
Map<Integer, Integer> map = new HashMap<>();
map.put(1, 1001);
map.put(2, 1002);
map.put(3, 1003);
map.put(4, 1004);
map.put(5, 1005);
System.out.println("Unmodifiable map: " + map);
Map<Integer, Integer> map2 = Collections.unmodifiableMap</span>(map);
map.remove(4, 1004);
System.out.print("Unmodifiable map after remove(4, 1004): "+map2);
}
}
输出:
Unmodifiable map: {1=1001, 2=1002, 3=1003, 4=1004, 5=1005}
Unmodifiable map after remove(4, 1004): {1=1001, 2=1002, 3=1003, 5=1005}