如何构造哈希函数
- 数字分析法;
- 平方取中法;
- 除留余数法;
- 伪随机数法;
处理冲突
- 线性探测;
- 二次探测;
- 伪随机数探测;
- 拉链探测。
- 如果负载因子是默认的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个空间的内存。