散列表也叫做散列映射、映射、字典和关联数组。散列表包含了散列函数和数组,它能跟数组一样迅速查找元素。
    在python中的字典就是一种散列表,运用到了键值对,即将键映射到值。
    散列表的作用:
    1.模拟映射关系 2.防止重复 3.缓存数据

    冲突:
    散列表难免遇到冲突,遇到冲突的时候,就在冲突位置生成一个链表。但是万一链表很长呢?将会影响效率!
    因此,散列函数很重要,最好将键均匀的映射到散列表的不同位置。

    效率:这张图是重点,好好对比数组和链表。
    image.png

    在解决冲突方面,一是要降低填装因子,即填装数/数组长度要较小,发生冲突可能性就小。经验是一般填装因子超过0.7的时候,就要调整散列表的长度。(但是这么做有额外的开销)