この質問(Efficient hashCode() implementation)との関連でもう1つ質問があります。ハッシュコードの実装
私は "値"クラスを持ち、インスタンスはデータベースに保持されています。したがって、このクラスのインスタンスはすべて一意のIDを持ちます。
結果として、このIDを返すだけで、ハッシュコードメソッド(および関連するequalsメソッド)が実装されました。
Eclipseのハッシュコードジェネレータを使用して生成のための唯一のID属性を使用するようにEclipseを伝えるとき、私は次のような方法があります。
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + id;
return result;
}
を私は、このIDは一意である知っているので、単純にIDを返すことは、より効率的だと思います。私は正しい?事前
結果が1の場合は、なぜ結果を調べるのですか?あなたは実際に機能する "return 31 + id;"です。 – Tom
IDの分布を変更しないので、あなたは31を取り除くこともできます。要するに、実装したハッシュコードは特別な処理を行わず、idを返すだけです。それが言われている、私は "より良い"とは思わない。 – Tom