我有一個double
作爲hashmap中的值,其中的鍵值爲String。如果我單獨更新作爲值添加到散列映射的變量,而不是在散列映射中更新它,則不會反映更新後的值。那是當我使用鍵來獲取值,我得到的值爲0.0而不是更新的值。我無法理解爲什麼會發生這種情況。請在此點亮一下。另外,有沒有其他方式通過更新變量來更新hashmap中的值。我所談論的樣本代碼如下:使用double作爲hashmap中的值的問題
import java.util.HashMap;
public class TestDouble{
public Double d1 = 0.0;
public Double d2 = 0.0;
public Double d3 = 0.0;
private HashMap<String,Double> hm;
public TestDouble(){
hm = new HashMap<String,Double>();
hm.put("D1",d1);
hm.put("D2",d2);
hm.put("D3",d3);
}
public void updateD1(double d){
d1 = d;
}
public void updateD2(double d){
d2 = d;
}
public void updateD3(double d){
d3 = d;
}
public Double getValue(String key){
Double val = (Double)hm.get(key);
return val;
}
public static void main(String args[]){
TestDouble td =new TestDouble();
td.updateD1(10.10);
td.updateD2(20.20);
td.updateD3(30.30);
System.out.println("Value of D1 from HashMap = "+td.getValue("D1")+" from actual variable = "+td.d1);
System.out.println("Value of D2 from HashMap = "+td.getValue("D2")+" from actual variable = "+td.d2);
System.out.println("Value of D3 from HashMap = "+td.getValue("D3")+" from actual variable = "+td.d3);
}
}
我得到的輸出是:
Value of D1 from HashMap = 0.0 from actual variable = 10.1
Value of D2 from HashMap = 0.0 from actual variable = 20.2
Value of D3 from HashMap = 0.0 from actual variable = 30.3
感謝所有。我想我必須找到另一種方式來做到這一點。再次感謝 – shamshu