-
length为2的整数次幂的话,h&(length-1)等价于 h%length-1 就相当于对length取模,这样便于保证散列的均匀,同时也提升了效率。
-
length为2的整数次幂的话,为偶数,length-1为奇数,保证了h&(length-1)二进制保证了最后一位可能是0,也可能是1。如果是奇数,那么h&(length-1)的最后一位只能为0,浪费了一般的空间。
-
因此取整数次幂是为了使不同的hash值发生碰撞的概率减小。
转载于:https://my.oschina.net/u/3938912/blog/3085091