我double在hashmap中有一个值作为String的键.如果我将作为值添加的变量单独更新到散列映射,而不是在散列映射中更新它,则不会反映更新的值.那是当我使用键获取值时,我得到的值为0.0而不是更新的值.我无法理解为什么会这样.请详细说明一下.此外,是否有其他方法通过更新变量来更新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(); …Run Code Online (Sandbox Code Playgroud) java ×1