本文主要介绍Java中,用final和static修饰HashMap的静态成员变量初始化的方法。

初始化时必须手动添加所有元素

1、 可以使用静态代码块初始化

public class Demo
{
private static final Map<String, String> myMap;
static
{
myMap = new HashMap<String, String>();
myMap.put("a", "b");
myMap.put("c", "d");
}
}

2、 使用函数方法初始化

public class Demo
{
private static final Map<String, String> myMap = createMap();
private static Map<String, String> createMap()
{
Map<String,String> myMap = new HashMap<String,String>();
myMap.put("a", "b");
myMap.put("c", "d");
return myMap;
}
}

3、 Java 9中HashMap的初始化方法

public class Demo {
private static final Map<String, String> test = Map.of("a", "b", "c", "d");
private static final Map<String, String> test2 = Map.ofEntries(
entry("a", "b"),
entry("c", "d")
);
}

test和test2的初始化是相同的,只是表达方式不一样。Map.of方法在Map中定义了最多十个元素,而该Map.ofEntries方法没有这样的限制。