java泛型

  前幾天刷leetcode-majorityElement時碰到一泛型問題,用到的代碼以下:java

 

HashMap hashMap=new HashMap<Integer,Integer>();
//註釋爲正確寫法
//HashMap<Integer,Integer> hashMap=new HashMap<Integer,Integer>(); 
        if (hashMap.containsKey(n) )
                hashMap.put(n,hashMap.get(n)+1);

  報錯在第5行,"+"運算符類型錯誤,hashMap.get(n)爲Object型,1爲int型spa

原先我覺得因爲java的類型擦除,那麼第一行能夠不用這樣聲明code

HashMap<Integer,Integer> hashMap=new HashMap<Integer,Integer>();

 而事實上若不寫HashMap<Integer,Integer>它認爲類型聲明爲爲Object,另有一種複雜的解決方法:blog

hashMap.put(n,(int)hashMap.get(n)+1);

 這是將Object強制轉換爲int leetcode

相關文章
相關標籤/搜索