2014-01-09 30 views
0

我是新來的java和現在學習的東西,我已經嘗試了下面的程序存儲密鑰值對哈希表。我可以添加一個鍵和值,並能夠檢索它。下面的hashTable程序不工作?

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")); 

} 

回答

0

vel是在散列表中的鍵的方面從Vel不同。你已經在哈希表中插入vel而不是Vel

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

以下條件計算爲false

"vel".equals("Vel") 
0

與您正試圖取回你的價值是不正確的密鑰。你正在嘗試做的事情有一個錯字。 你在你的散列表中輸入密鑰"Vel",但正在嘗試檢索"vel". 沒有與"vel"作爲關鍵字的鍵值對。

這下面的語句

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

應該是這個

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