【发布时间】:2010-10-05 04:32:58
【问题描述】:
您将如何在 Java 中初始化静态 Map?
方法一:静态初始化器
方法二:实例初始化器(匿名子类)
要么
其他方法?
各有什么优缺点?
以下是说明这两种方法的示例:
import java.util.HashMap;
import java.util.Map;
public class Test {
private static final Map<Integer, String> myMap = new HashMap<>();
static {
myMap.put(1, "one");
myMap.put(2, "two");
}
private static final Map<Integer, String> myMap2 = new HashMap<>(){
{
put(1, "one");
put(2, "two");
}
};
}
【问题讨论】:
-
用于在 Java 8 中初始化地图:stackoverflow.com/a/37384773/1216775
-
请不要使用double brace initialization - 这是一种黑客行为,也是一种泄漏内存和导致其他问题的简单方法。
-
Java 9?如果条目数 Map.of 否则使用
Map.ofEntries,请检查 stackoverflow.com/a/37384773/1216775
标签: java dictionary collections initialization idioms