HashMap を使用して、x、y 値をデカルト平面にマッピングしています。非常に小さな x 値と非常に大きな y 値に対して効果的な HashCode は何でしょうか?
現在私は使用しています:
public int hashCode() {
return ((y * 31) ^ x);
// & Typical x,y values would be, (with many collisions on x):
[4, 1000001] [9, 1000000] [5, 999996] [6, 999995] [4, 999997]
[6, 999997] [6, 1000003] [10, 999994] [8, 999997] [10, 999997]
[5, 999999] [4, 999998] [5, 1000003] [2, 1000005] [3, 1000004]
[6, 1000000] [3, 1000005]
x、yペアの重複を避けるために、.putメソッドを使用して両方のx、yペアをハッシュマップのキーに挿入しています。それが最も効果的な解決策であるかどうかもわかりません。