HashMap使用链表解决hash冲突
使用key进行Hash值计算,然后通过 (n - 1) & hash 判断当前元素存放的位置(这里的 n 指的是数组的长度),用于确定当前键值对要放入哪个Bucket中。
为什么使用与运行而不是用取模来计算当前元素的存放位置?
因为取模会产生更多的hash冲突,导致数据散列不均衡,从而拖慢数据查询速度,且与运算是二进制的运算,性能更高