Java 下面的哈希表程序不工作?

Java 下面的哈希表程序不工作?,java,Java,我是java新手,现在正在学习一些东西,我已经尝试了下面的程序在哈希表中存储键值对。我可以添加一个键和值,并能够检索它 public static void main(String[] args){ Hashtable balance= new Hashtable(); Enumeration names; String str; int a; balance.put("vishnu",new Integer(1000)); balance.pu

我是java新手,现在正在学习一些东西,我已经尝试了下面的程序在哈希表中存储键值对。我可以添加一个键和值,并能够检索它

public static void main(String[] args){
    Hashtable balance= new Hashtable();
    Enumeration names;
    String str;
    int a;

    balance.put("vishnu",new Integer(1000));
    balance.put("Sam",new Integer(1420));
    balance.put("Gobi",new Integer(890));
    balance.put("Vel",new Integer(50));

    names=balance.keys();
    while(names.hasMoreElements()){
        str=(String) names.nextElement();
        System.out.println(str + " is getting "+balance.get(str));
    }
    System.out.println();
但是,当我试图修改附加值时。这给了我一个空指针异常

    a=((Integer) balance.get("vel")).intValue();
    System.out.println("Before Adding "+a);

    balance.put("Vel", new Integer(a+1000));

    System.out.println("After adding "+balance.get("vel"));

}

vel
在哈希表键方面不同于
vel
。您已经在哈希表中插入了
vel
,而不是
vel

a=((Integer) balance.get("vel")).intValue();
以下条件的计算结果为false

"vel".equals("Vel")

尝试检索值时使用的键不正确。你想做的事情有一个输入错误。 您正在哈希表中输入键
“Vel”
,但试图检索
“Vel”。
没有以
“vel”
作为键的键值对

这项声明如下

a=((Integer) balance.get("vel")).intValue();
应该是这个吗

a=((Integer) balance.get("Vel")).intValue();