代码:
public class MyClass {
private Map<Integer,String> myMap;
...........................
void methodFillMap(){
myMap=new HashMap<Integer, String>();
.....................
}
}
或者更好:
public class MyClass {
private Map<Integer,String> myMap=new HashMap<Integer, String>();
...........................
void methodFillMap(){
myMap.put(.....);
.....................
}
}
这两种创建地图的方式是否与效率和功能相同?
答案 0 :(得分:4)
不,它们在功能上有所不同。在第一种情况下,每次调用方法methodFillMap时,都会创建一个新映射,并且您将丢失旧映射中的信息,而在第二种情况下,该对象将保留信息。
答案 1 :(得分:1)
在两种情况下,创建对象(地图)的“时间惩罚”可能都相同。问题是 - 您希望实例化更快,还是要将cal设置为methodFillMap
?
答案 2 :(得分:0)
我认为最好的方法是第一种,这样你只需要在你真正需要的时候创建一个新的地图实例,所以万一你永远不会调用方法“methodFillMap”你就不会有一个未使用对象的实例在记忆中。