Tag: 法哈希哈希码

Java Arrays.hashcode()的hashcode实现是否均匀分布

我查看了Arrays.hashCode(char[] c)的源代码 我并不是很确认它适用的算法在所有情况下都能很好地工作。 public static int hashCode(int a[]) { if (a == null) return 0; int result = 1; for (int element : a) result = 31 * result + element; return result; } 这里实现的散列函数是否真正均匀地分配了所有输入数组。为什么我们在这里使用prime 31。