2014-02-27 19 views
0

這不斷給出一個空指針異常......我覺得我錯過了一些東西。順便說一下,這是一個HashMap<Character, Integer>。也許這是一個包裝/原始的東西?我不知道。想想我可能會誤解Map類的方法

int amount = 0; 
    for (int i = 0; i < aMap.size(); i++){ 
     if (!aMap.get(i).equals(null)) 
      if (aMap.get(i).equals(c)) 
       amount++; 
    } 
+0

您是否使用new實例化'HashMap'? –

+2

看起來HashMap應該是HashMap ,因爲您使用整數作爲鍵並將該值與'c'進行比較,我認爲它是一個字符? – anonymous

+0

@anonymous如何編譯雖然?我認爲這是一個錯字 –

回答

2

aMap.get(i).equals(null)如果aMap.get(i)爲空則拋出NPE。您必須使用==在測試null時測試參考相等性:

if (aMap.get(i) != null) 
+0

似乎工作。謝謝。 – user3353751

+2

@ user3353751 - 我也建議你先檢查一下(aMap!= null),然後在地圖上嘗試get/put/other方法。 – TheLostMind