代碼:方法map = null和map.clear()是否相同?
public class MyClass {
private Map<Integer,String> myMap=new HashMap<Integer, String>();
...........................
void methodFillMap(){
myMap.put(.....);
.....................
}
}
什麼是正確的:
void methodFillMap(){
myMap.clear();
myMap.put(.....);
.....................
}
或
void methodFillMap(){
myMap=null;
myMap.put(.....);
.....................
} 或更好
void methodFillMap(){
myMap=new HashMap<Integer, String>();
myMap.put(.....);
.....................
}
1和3之間有一個主要區別..如果其他任何東西都有對地圖的活動引用(通過反射或引用地圖的另一個局部變量),那麼只要存在其他引用,則您的項目將保留在內存中;比這更糟糕的是,你有兩個具有獨立實體的地圖。一般情況下應該使用'map.Clear()',除非運行明確無誤的時間會減慢應用程序的運行速度。 – Seph 2012-03-07 09:25:42