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       }

此计算在 List 界面中指定。我不知道它对你来说是否足够抗碰撞,但这似乎是一个不错的起点。它确实考虑了顺序(即相同数字的不同顺序将产生不同的哈希值)。

于 2012-07-06T08:25:14.300 回答