ハッシュ コード ビルダーを pojo のインスタンス変数として使用しています。
public class Pojo {
private HashCodeBuilder hashBuilder = new HashCodeBuilder();
private int i;
public setI(int i) {this.i = i}
@Override
public int hashCode() {
hashBuilder.append(id);
return hashBuilder.toHashCode();
}
}
の値を同じ値に 2 回設定するi
と、ハッシュコードの結果が異なります。これは実装上のバグですか?
ハッシュ コード ビルダーが実行中の合計を保持するために発生していることを理解しています。しかし、同じ値のセットに対して同じハッシュを与えるべきではありませんか?
また、上記のアプローチに従わない場合、次のようにhashcode
pojo のメソッド内で同じハッシュ コード ビルダーを何千回も初期化することになります。
...
@Override
public int hashCode() {
hashBuilder = new HashBuilder();
hashBuilder.append(id);
return hashBuilder.toHashCode();
}
...
この実行中の合計をリセットして、同じ値のセットで呼び出すたびにhashcode
一貫した回答が得られるようにする方法はありますか?