Java 静态哈希映射初始化
我有这门课,我想知道:Java 静态哈希映射初始化,java,spring,hashmap,Java,Spring,Hashmap,我有这门课,我想知道: 1°这是定义静态HashMasp的最佳方式吗 2°在基于Spring的应用程序中,这是最好的方法吗?(Spring提供更好的方法吗? 提前谢谢 public class MyHashMap { private static final Map<Integer, String> myMap; static { Map<CustomEnum, String> aMap = new Hash
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));
公共类MyHashMap{
私有静态最终映射myMap;
静止的{
Map aMap=newhashmap();
aMap.put(CustomEnum.UN,“一”);
aMap.put(CustomEnum.DEUX,“两个”);
myMap=Collections.unmodifiableMap(aMap);
}
公共静态字符串getValue(CustomEnum id){
返回myMap.get(id);
}
}
System.out.println(MyHashMap.getValue(CustomEnum.UN));
有几种方法可以做到这一点。例如,如果你的地图是不可变的,你可以考虑使用
它有一个ImmutableMap类,可用于将地图构造为:-
static final ImmutableMap<String, Integer> WORD_TO_INT =
new ImmutableMap.Builder<String, Integer>()
.put("one", 1)
.put("two", 2)
.put("three", 3)
.build();
静态最终不可变映射单词到INT=
新的ImmutableMap.Builder()
.put(“一”,1)
.put(“两个”,2)
.put(“三”,3)
.build();
如果您已经在使用并使用XML连接bean,那么您可以通过XML直接填充映射,如下所示:-
...
<!-- 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>
...
。。。
...
您可以使用番石榴图书馆。但如果您不想使用第三方库,则有两种方法:
private static final Map<String,String> myMap = new HashMap<String, String>();
static {
myMap.put(key1, value1);
myMap.put(key2, value2);
}
public static Map getMap() {
return Collections.unmodifiableMap(myMap);
}
private静态最终映射myMap=newhashmap();
静止的{
myMap.put(键1,值1);
myMap.put(键2,值2);
}
公共静态映射getMap(){
返回集合。不可修改映射(myMap);
}
private静态最终映射myMap=newhashmap()
{
{
put(键1,值1);
put(键2,值2);
}
};
公共静态映射getMap(){
返回集合。不可修改映射(myMap);
}
私有静态void addPair(字符串键,字符串val){
//将键val添加到映射
}
集合。不可修改的地图:它有助于拥有一个不可修改的地图视图,该视图不能被修改。由于它给出了不受支持的异常,如果对map进行了任何修改。可能会有兴趣知道,从java 9开始,您将能够以与Arrays.asList类似的方式在移动中创建map,这将允许您避免静态块。试图找到我已经读过的地方…好了。。。和。
private static final Map<String,String> myMap = new HashMap<String, String>()
{
{
put(key1, value1);
put(key2, value2);
}
};
public static Map getMap() {
return Collections.unmodifiableMap(myMap);
}
private static void addPair(String key, String val){
// Add key val to map
}