コレクション内の hashCode() メソッドの最適な実装を決定することは微妙なタスクであり、次の影響を大きく受けます。具体的な使用パターン。ただし、広く認知されている効果的なアプローチは、Josh Bloch 氏の独創的な著書「Effective Java」(項目 8、第 2 版) で概説されています。
Bloch 氏によると、推奨事項として、効率的な hashCode() を作成するには次の手順に従う必要があります。メソッド:
その値に基づいて各フィールド f のハッシュ コード c を計算します。 type:
計算されたハッシュ値 c と結果を組み合わせます:
result = 37 * result + c
このアプローチは、equals() メソッドでテストされたすべてのフィールドのハッシュ コードを効果的に組み合わせることで、ほとんどのユースケースでハッシュ値が適切に分散されるようにします。結合ステップで 37 を乗算すると、分布がさらに強化されます。
普遍的に「最適な」実装は存在しない可能性がありますが、Bloch が推奨するアプローチは、効果的な hashCode( ) コレクションのメソッド。使用パターンを慎重に検討し、概要を示した手順を適用することで、開発者は、contains() や get() などのハッシュベースの操作に関してコレクションが最適に実行されることを保証できます。
以上がコレクション用の堅牢な hashCode() メソッドを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。