我试图在一个类中将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/

10-12 03:46