现如今,是否存在已经广泛使用的真正的完美哈希函数?
不存在的话,那现在被广泛接受和使用的是哪个完美hash呢?
解决方案
不存在完美哈希函数,一般的应用场景下,可以使用Java hashCode方法的实现,是复杂度和效率之间的一个很好的平衡:
public int hashCode() { int h = hash; //缓存以前的hash计算结果 if (h == 0 && value.length > 0) { //value是要计算hash值的字符串 char val[] = value; for ( int i = 0; i < value.length; i++) { h = 31 * h + val[i]; } hash = h; } return h; }