4

整数のタプル(順序が重要)を衝突の可能性が低い整数にハッシュする必要があります。整数を文字列に変換し、「、」と連結して文字列ハッシュを取得するアプローチを使用していますが、速度が遅すぎます。

整数のタプルから高速ハッシュを取得する方法はありますか?

4

1 に答える 1

4

JavaのArrays.hashCode(int [])の機能は次のとおりです。

 2938       public static int hashCode(int a[]) {
 2939           if (a == null)
 2940               return 0;
 2941   
 2942           int result = 1;
 2943           for (int element : a)
 2944               result = 31 * result + element;
 2945   
 2946           return result;
 2947       }

この計算は、リストインターフェイスで指定されます。それがあなたにとって十分な衝突耐性があるかどうかはわかりませんが、それは始めるのに良い場所のようです。順序は考慮されます(つまり、同じ番号の順序が異なると、ハッシュ値も異なります)。

于 2012-07-06T08:25:14.300 に答える