百度站长平台快速收录,wordpress hook机制,邢台哪有学做网站的,自己的电脑做网站云存储1.什么是hash表#xff1f;答#xff1a;简单回答散列表#xff0c;在hash结构散列(分散)存放的一种数据集结构。2.如何散列排布#xff0c;如何均匀排布#xff1f;答#xff1a;取余运算3.Java中如何实现#xff1f;答#xff1a;hash(h-1)4.为什么hash(h-…1.什么是hash表答简单回答散列表在hash结构散列(分散)存放的一种数据集结构。2.如何散列排布如何均匀排布答取余运算3.Java中如何实现答hash(h-1)4.为什么hash(h-1)等价于hash%hjava的h(表长)一定是2的指数次幂2的指数次幂2n2n的结果一定长这样10000...(n个0)2n-1的结果一定这样1111(n-1)个1举个例子当h16,对应的二进制00010000h-115,对应的二进制00001111可以知道所有的数与00001111进行运算高位都是0(进行位运行无论怎样高位都是0)低位取决于这个数的后四位(因此低位可能为0也可能为1)因此(24-1) hash0 ~(24-1)之间hash%(24)只要知道是取余就行这种写法就行。只是对cpu指令的优化5.总结取余是为了散列分布而hash桶的长度以2的指数被增长可以使用位运算代替取余运算(显示的告诉计算机采用位运算但是你去取余计算机应该也是这么用位去算的.net里就是直接取余的但表长也是2的指数倍)hahs结构的重点算法应该是求hashcode比如字符串既要保证运算相同的串值的hash相同又要使hash值尽量不同(不然也不能散列分布)就要去遍历串来计算hahscode而hashcode一般占4字节