1.哈希表的定义
首先明确哈希表也是种数据结构,本质上是储存键值对的数组
2.哈希函数和函数法则
通过对键值对中的关键值进行一连串操作将其转变为数组中储存的位置(映射哈希值),这样的一系列操作犹如一个对应关系的函数,这个函数被叫做哈希函数,其中具体的操作被称为函数法则
3.哈希冲突
1)哈希冲突的定义
哈希冲突是指不同的键值对经过哈希函数处理后转变为相同的哈希值,此时此位置存储不下多个
键值对,此时就发生了哈希冲突
2)哈希冲突解决措施
开放寻址法:
即当发现一个数据存储时,相应地址被占用,此时向后地址进行推移,知道找到合法可用的地址进行存储。
链表法:
将同一位置中存储的不同键值对进行改造,使用链表将不同键值对进行串联然而当链表长度过长时,查找的效率便显得不够高效,此时可改用树形结构,来提高查找效率
4.哈希表的扩容和增长因子
当哈希表中存储的哈希值越来越多,此时出现哈希冲突的概念也大大增加此时就应该进行扩容,而此时被占的位置和总位置的比例就被称为增长因子(例:十个位置被占了七个此时增长因子便是0.7)扩容时创建一个原来两倍大的数组,将原来的键值对通过新的哈希函数进行映射。