简单理解散列表Hashtable

  • 什么是散列表
    • 散列表(Hashtable,也叫哈希表),是根据关键码值(key value)而直接进行访问的数据结构。也就是说,它通过把关键码映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。给定表M,存在函数f(key),对任意给定的关键值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希表,函数f(key)为哈希函数
  • 散列函数能对一个数据序列的访问过程更加迅速有效,通过散列函数,数据元素将被更快地定位
  • 链式哈希表
    • 由一组链表构成,每个链表都可以看做一个"桶",我们将所有的元素通过散列的方式放到具体的不同的桶中。
    • 插入元素时,首先将其键传入一个哈希函数,函数通过散列的方式告知元素属于哪个"桶",然后在相应的链表插入元素。
    • 查找或删除元素时,用同样的方式先找到元素的"桶",然后遍历对应的链表,直到发现我们想要的元素。
  • 注意
    • 因为每个“桶”都是一个链表,如果表变得太大,它的性能将会降低。
    • 哈希扩容:桶不够的话需要重新扩容,历史的数据需要重新hash
    • 哈希冲突碰撞:不同的元素经过hash后命中相同的位置
posted @ 2021-01-18 17:15  Gen2021  阅读(78)  评论(0)    收藏  举报