2014-02-27 20 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