前幾天刷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