1

これが私のコードです:

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}
优惠打折,优惠券|"优惠券"
4

1 に答える 1