2012-07-06 87 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接口指定。我不知道它是否足夠抵抗你,但它似乎是一個開始的好地方。它的確考慮了順序(即相同數字的不同順序會產生不同的散列值)。