Java HashMap 怎么初始化不可变 Map
在 java 中,可以通过 map.of()(java 9+)或 collections.unmodifiablemap()(java 8 及更早版本)来初始化不可变 map。使用 map.of() 可以直接创建包含键值对的不可变映射,而 collections.unmodifiablemap() 则需要先创建一个可变 map 再包装为不可变形式。

Java 8 及以下版本如何初始化不可变 Map
在 Java 8 及更早版本中,可以使用 Collections.unmodifiableMap() 方法来初始化不可变 Map。首先创建一个可变 Map,然后将其传递给 Collections.unmodifiableMap() 方法,返回的 Map 即为不可变 Map。

import java.util.*;
public class Main {
public static void main(String[] args) {
// 创建一个可变 Map
Map<String, Integer> mutableMap = new HashMap<>();
mutableMap.put("Alice", 30);
mutableMap.put("Bob", 25);
// 将可变 Map 转换为不可变 Map
Map<String, Integer> immutableMap = Collections.unmodifiableMap(mutableMap);
// 尝试修改不可变 Map 会抛出 UnsupportedOperationException
try {
immutableMap.put("Charlie", 35);
} catch (UnsupportedOperationException e) {
System.out.println("无法修改不可变 Map");
}
// 输出不可变 Map 的内容
System.out.println(immutableMap);
}
}
Java 9 及以上版本如何初始化不可变 Map
在 Java 9 及以上版本中,可以使用 Map.of() 方法来初始化不可变 Map。Map.of() 是一个静态工厂方法,可以直接创建包含键值对的不可变映射。该方法支持最多 10 个键值对,如果需要更多键值对,可以使用 Map.ofEntries() 方法。
立即学习“Java免费学习笔记(深入)”;

import java.util.*;
public class Main {
public static void main(String[] args) {
// 使用 Map.of() 创建不可变 Map
Map<String, Integer> immutableMap = Map.of(
"Alice", 30,
"Bob", 25
);
// 尝试修改不可变 Map 会抛出 UnsupportedOperationException
try {
immutableMap.put("Charlie", 35);
} catch (UnsupportedOperationException e) {
System.out.println("无法修改不可变 Map");
}
// 输出不可变 Map 的内容
System.out.println(immutableMap);
}
}


















