下面的hashTable程序不起作用?

时间:2014-01-09 04:48:23

标签: 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.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"));

}

3 个答案:

答案 0 :(得分:0)

在散列表键方面,

velVel不同。您已在哈希表中插入vel而非Vel

答案 1 :(得分:0)

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

以下条件评估为假

"vel".equals("Vel")

答案 2 :(得分:0)

您尝试检索值的密钥不正确。你想要做的事情有一个错字。 您是在哈希表中输入密钥"Vel"但是正在尝试检索"vel". 没有以"vel"为键的键值对。

以下声明

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

应该是这个

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