我有这门课,我想知道:
1° 这是定义静态 HashMasp 的最佳方式吗
2° 这是在基于 Spring 的应用程序中执行此操作的最佳方法吗?(Spring 是否提供更好的方法来执行此操作?)
提前致谢!
public class MyHashMap {
private static final Map<Integer, String> myMap;
static {
Map<CustomEnum, String> aMap = new HashMap<CustomEnum, String>();
aMap.put(CustomEnum.UN, "one");
aMap.put(CustomEnum.DEUX, "two");
myMap = Collections.unmodifiableMap(aMap);
}
public static String getValue(CustomEnum id){
return myMap.get(id);
}
}
System.out.println(MyHashMap.getValue(CustomEnum.UN));
最佳答案
有几种方法可以做到这一点。例如,如果您的 map 是不可变的,您可以考虑使用 Google Guava libraries 它有一个 ImmutableMap 类,可用于将您的 map 构造为:-
static final ImmutableMap<String, Integer> WORD_TO_INT =
new ImmutableMap.Builder<String, Integer>()
.put("one", 1)
.put("two", 2)
.put("three", 3)
.build();
如果您已经在使用 Spring Framework并使用 XML 连接您的 bean,然后您可以直接通过 XML 填写 map :-
...
<!-- creates a java.util.Map instance with the supplied key-value pairs -->
<util:map id="emails">
<entry key="pechorin" value="pechorin@hero.org"/>
<entry key="raskolnikov" value="raskolnikov@slums.org"/>
<entry key="stavrogin" value="stavrogin@gov.org"/>
<entry key="porfiry" value="porfiry@gov.org"/>
</util:map>
...
关于java - 静态 HashMap 初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35762823/