小编Sha*_*ani的帖子

在hashmap中使用double作为值的问题

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

4
推荐指数
1
解决办法
2万
查看次数

标签 统计

java ×1