這裏是我的代碼:Java中的HashMap不起作用?
double getRevenue(KeywordGroupKey key) {
Double r = revenueMap.get(key);
System.out.println(key + "\t" + key.hashCode());
for (KeywordGroupKey other : revenueMap.keySet()) {
System.out.println(other.toString() + "\t" + other.hashCode());
if(other.equals(key))
System.out.println("equals here...");
}
if(r == null)
r = 0.0;
return r;
}
這裏是輸出:
優惠打折,優惠券|"優惠券" 955095524
brand+點評團購|大衆點評 726983298
brand-品牌詞相關|團購網站大全 -713384514
brand-品牌詞|點評網 2029153675
brand+點評團購|大衆點評網 261410621
優惠打折,優惠券|"優惠券" 955095524
equals here...
所以就是這麼奇怪,該方法返回的值是空的,爲什麼劑量出現這種情況?由於revenueMap中有一個關鍵字具有相同的哈希碼並且與參數關鍵字相等。 下面是revenueMap的當前狀態和關鍵:
{brand+點評團購|大衆點評=28.0, brand-品牌詞相關|團購網站大全=49.9, brand-品牌詞|點評網=21.0, brand+點評團購|大衆點評網=167.0, 優惠打折,優惠券|"優惠券"=9.9}
優惠打折,優惠券|"優惠券"
能否請您發佈的代碼 – 2012-07-09 07:01:33
的重複性單位有沒有簡單的方法來發布,因爲我添加鍵值對到地圖解析一個大的日誌文件時並且代碼太多。 – 2012-07-09 07:05:09
也許這個鍵(存在)的值是'null'?你可以做'revenueMap.put(「優惠券」,null)' – Thilo 2012-07-09 07:06:15