IIUC hashCode()
が呼び出されたときに両方のオブジェクトが同じ値を返しても、同じ型の2つの異なるオブジェクトをHashSetに格納できます。たとえば、this article「Aa」と「BB」は同じhashcode
(2112)を返しますが、明らかにこれらの文字列をHashSet
に入れることができ、両方とも "Aa"が "BB"を上書きすることなくSet
に含まれます。コレクション内のオブジェクトルックアップを高速化するためにハッシュコードが使用されていますか?
したがって、hashCode()
の主な目的は、セット内のインスタンス、または一般的なコレクションを見つけるのを早くすることですか?また、hashCode()
の定数を返すと、そのようなオブジェクトを格納しているコレクションのパフォーマンスが低下することになります(JPA context as suggested by this linked article for example内)。