这是我的代码:
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...
所以奇怪的是方法返回的值是null,为什么会出现这种情况呢?由于recommitmentMap 中有一个key 具有相同的哈希码并且与参数key 相等。以下是收入地图和键的当前状态:
{brand+点评团购|大众点评=28.0, brand-品牌词相关|团购网站大全=49.9, brand-品牌词|点评网=21.0, brand+点评团购|大众点评网=167.0, 优惠打折,优惠券|"优惠券"=9.9}
优惠打折,优惠券|"优惠券"