1. 为什么需要哈希表?
哈希表提供了key与value的映射关系,给出key可以高效地找到匹配的value,时间复杂度接近于O(1),适用于空间足够的情况下快速查找。
2. 哈希函数
哈希函数类似于中转站,用于将key与数组下标进行映射
哈希函数的特点:
(1) 输出值得数据长度不变;
(2) 相同的输入输出也一定相同;
(3) 输入相似的数据,即使相差一个比特位,输出也会截然不同;
(4) 输入截然不同的值,输出的哈希值会以低概率出现;
(5) 不可能根据哈希值返回计算出原始数据;
(6) 计算相对简单。

3. 哈希表的读写操作
哈希冲突: 指的是随着Entry的增加,不同Entry计算出来的额数组下标是相同的。
解决哈希冲突的办法: 开放寻址法和链表法。
为什么需要扩容?
经过多次元素插入后,哈希表达到一定的饱和度时,哈希冲突的概率会提高,这样一来,大量的元素拥挤在相同的数组下标位置,形成很长的链表,对后续的插入操作和查询操作的性能都有很大影响。
来源:https://blog.csdn.net/a1558451960/article/details/100821264