2012-07-06 46 views
3

我需要凑整数的元组(顺序很重要),并在发生碰撞的概率低整数的元组。我正在使用将整数转换为字符串的方法,与','连接并获取字符串散列,但速度太慢。快速的方法来凑整数

是否有来自整数的元组得到快速哈希值的方法吗?

+0

什么是值的范围是多少?有多少价值? – wildplasser 2012-07-06 08:23:23

回答

3

这里是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接口指定。我不知道它是否足够抵抗你,但它似乎是一个开始的好地方。它的确考虑了顺序(即相同数字的不同顺序会产生不同的散列值)。