hash,解决hash冲突的方法?

​​​

如何构造哈希函数

  1. 数字分析法;
  2. 平方取中法;
  3. 除留余数法;
  4. 伪随机数法;

处理冲突

  1. 线性探测
  2. 二次探测
  3. 伪随机数探测;
  4. 拉链探测
  5. 如果负载因子是默认的0.75,HashMap(16)的时候,占16个内存空间,实际上只用到了12个,超过12个就扩容。
    如果负载因子是1的话,HashMap(16)的时候,占16个内存空间,实际上会填满16个以后才会扩容。增大负载因子可以减少hash表的内存,如果负载因子是0.75,hashmap(16)最多可以存储12个元素,想存第16个就得扩容成32。如果负载因子是1,hashmap(16)最多可以存储16个元素。同样存16个元素,一个占了32个空间,一个占了16个空间的内存。

猜你喜欢

转载自blog.csdn.net/fadbgfnbxb/article/details/88787886