サーバーID、ストリームID、メッセージIDの3つの整数を持つクラスがあります。
小さいものHashSet
もありますが、交差点を設定するなど、多くのことを行います。また、に10K以上の要素があるものもあります。
serverIDの値はほんの一握りですが、それらは完全に32ビットのランダム性を備えた真の乱数です。多くの場合、ハッシュテーブル全体に対してserverIDは1つだけです。それ以外の場合は、2つのserverIDだけです。
streamIDは少数で、通常は0ですが、1または2の場合もあります。
messageIDは、serverID/streamIDのペアごとに順次増加します。
私は現在持っています:
(-messageID << 24) ^ messageID ^ serverID ^ streamID
順次増加するmessageIDがあり、他の多くのビットを混在させていないにもかかわらず、優れたハッシュ関数があることを理解したいと思います。
何が良いhashCode
のか、そしてどうすればこれら3つの数字を最もよく組み合わせることができますか?