📅  最后修改于: 2023-12-03 15:02:03.740000             🧑  作者: Mango
在Java中,通过使用集合(Collection)可以方便地操作一组对象,其中包括List、Set和Map等。其中,Map是一种键值对集合,它将键映射到值上。而在Java的Map接口中,unmodifiableMap() 方法提供了一种不可变的集合,它提供一个只读的视图,不能向其中添加、删除、修改元素,从而保护了集合中的元素不被意外地修改或删除。
public static <K,V> Map<K,V> unmodifiableMap(Map<? extends K,? extends V> m)
unmodifiableMap() 方法接收一个Map类型的参数m,该参数是需要转换成不可变集合的Map。
unmodifiableMap() 方法返回一个不可变集合,其元素与参数m相同。
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() 方法可以简化代码,并提高程序的安全性。