これが私のコードです:
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 になるのは非常に奇妙ですが、なぜこのようなことが起こるのでしょうか? RevenueMap にキーがあるため、同じハッシュ コードがあり、引数キーと等しくなります。以下は、revenueMap とキーの現在の状態です。
{brand+点评团购|大众点评=28.0, brand-品牌词相关|团购网站大全=49.9, brand-品牌词|点评网=21.0, brand+点评团购|大众点评网=167.0, 优惠打折,优惠券|"优惠券"=9.9}
优惠打折,优惠券|"优惠券"