カスタムクラスオブジェクトをHashSetに追加し、それらにhashCode()メソッドを提供しない場合、ハッシュのパフォーマンスにどのように影響しますか?
ありがとう、アジェイ
Nikolausが言及しているように、ストックの実装は高速で、問題なく機能します。equalsメソッドをオーバーライドする場合を除いて、遠慮なく使用してください。たとえば、2つのPersonオブジェクトが同じgetFirstName()とgetLastName()を持っている場合に「等しい」場合、equalsメソッドをオーバーライドしてそれをチェックし、hashCode()をオーバーライドしてそれらの値が同じハッシュを返すようにします。 2つのプロパティは同じです。
hashCode
独自のメソッドを定義しない場合は、オブジェクトの親クラスのメソッドが呼び出されます。親が定義されていない場合hashCode
、Objectクラスのメソッドが呼び出されます。java apiのドキュメントによると、メソッドはオブジェクトのアドレスに応じて整数を返しますが、これがどの程度正確に行われるかは、jvmとオペレーティングシステムによって異なります。
要約すると、hashCodeメソッドを指定しない場合は、オブジェクトをhashTableに配置するようなものです。