我试图在一个类中将Map初始化为零。我这样做是这样的:
public class A{
private final Map<String,Integer> myMap;
public A(){
this.myMap = new HashMap<String,Integer>() {
{
put("a",0);
put("b",0);
}
};
}
}
我的问题:这是一个好的实现吗?这有什么问题吗?还是有更好的方法来实现这一目标?
最佳答案
Rod_Algonquin的意思是:
public class A {
private final Map<String,Integer> myMap;
public A() {
this.myMap = new HashMap<String,Integer>();
this.myMap.put("a",0);
this.myMap.put("b",0);
}
}
根据Luiggi Mendoza的评论,由于
Map
被声明为final
,因此您可能希望地图不可修改,但final
不能保证。这将:public class A {
private final Map<String,Integer> myMap;
public A() {
Map<String,Integer> map = new HashMap<String,Integer>();
map.put("a",0);
map.put("b",0);
this.myMap = Collections.unmodifiableMap(map);
}
}
关于java - 在Java中的构造函数中初始化Map的更好方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32364960/