私はhashcode()とequals()の間の契約を理解しています。私が理解していないことは、同じクラスを計算中にクラス(豆)のすべてのフィールドを含める必要があるということですか?例えばBeanオブジェクトをハッシュベースのコレクションで使用する必要があり、ソートが必要です。 Beanクラスには〜25個のフィールドが含まれています。オーバーライドするhashcode()とequals()を計算する際に、すべてのフィールドを考慮する必要がありますか?
HashCode()とeuqals()をオーバーライドするときに、そのフィールドをすべて考慮する必要がありますか?
番号フィールドだけを検索します:場合には削除したい場合はフィールドにしようとか、コメント欄でのDimitryからの提案を言っています) - そしてequalsについては、それはあなた次第です。デフォルトのオブジェクト#は、等しい参照のみをテストします。 –
@Elliot私の理解によれば、ベストプラクティスはhashcode()とequals()で同じフィールドを使うことです。 – Diganta
絶対に必要な*と*ベストプラクティス*の違いを理解していますか?ここで何を求めていますか? –