5

hashCode効果的なJavaアイテム9(オーバーライドするときは常にオーバーライドするequals)では、

String、Integer、DateなどのJavaプラットフォームライブラリの多くのクラスには、インスタンス値の関数としてhashCodeメソッドによって返される正確な値が仕様に含まれています。これは、将来のリリースでハッシュ関数を改善する能力を大幅に制限するため、一般的にはお勧めできません。

どういう意味ですか ?

4

1 に答える 1

4

これは、コードの新しいバージョンでハッシュ関数を書き直して、より良いハッシュプロパティを持たせることができないことを意味します。たとえば、String.hashCode()関数は高速ですが、あまり良くありません。しかし、ハッシュコードが指定されており、人々は独自のコードでその実装に依存しているため、これ以上変更することはできません。

于 2012-12-10T18:25:13.187 に答える