在Java中,字典是在构造函数中初始化映射的更好方法
我试图在一个类中将一个映射初始化为零。我是这样做的:
public class A{
private final Map<String,Integer> myMap;
public A(){
this.myMap = new HashMap<String,Integer>() {
{
put("a",0);
put("b",0);
}
};
}
}
我的问题是:这是一个好的实现吗?这有什么问题吗?还是有更好的方法来实现这一点
# 1 楼答案
更好的方法是在初始化映射后简单地输入值:
当前版本使用的是实例初始值设定项块(也称为double brace initialization),这会在后台创建一个不必要的匿名类。在这里这样做没有真正的好处。相反,它可能会导致一个小的performance hit
# 2 楼答案
Rod_Algonquin的意思是:
继Luiggi Mendoza的评论之后,由于
Map
被声明为final
,您可能希望地图不可修改,但final
并不能保证这一点。这将: