zoukankan      html  css  js  c++  java
  • Java 散列表HashTable

    什么是散列表hash table和使用场景

    什么是散列表

      散列表(Hash table,也叫哈希表),是根据关键码值(key value)而直接进行访问的数据结构。它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫散列表。

      散列函数能使一个数据序列的访问过程更加迅速有效,通过散列函数,数据元素将被更快地定位

    链式哈希表

    1. 是一组链表构成,每个链表都可以看做是一个“桶”,我们将所有的元素通过散列的方式放到具体的不同的桶中。
    2. 插入元素时,首先将其键传入一个哈希函数,函数通过散列的方式告知元素属于哪个“桶”,然后在相应的链表插入元素
    3. 查找或删除元素时,用同样的方式先找到元素的“桶”,然后遍历相应的链表,直到找到我们想要的元素

    区别

    • 因为每个“桶”都是一个链表,如果表变得太大,它的性能将会降低
    • 哈希扩容:Bucket桶不够的话需要重新扩容,历史的数据需要重新hash
    • 哈希冲突碰撞:不同的元素经过hash后命中相同的位置
    作者:陈彦斌

    个性签名:没有学不会的技术,只有不学习的人!
    联系方式:543210188(WeChat/QQ),推荐WeChat
  • 相关阅读:
    [CF590C] Three States
    [CF767B] The Queue
    [CF1296F] Berland Beauty
    [CF3D] Least Cost Bracket Sequence
    YUV420 转 RGB 测试
    [POI2012] TOU-Tour de Byteotia
    [CF576C] Points on Plane
    [CF191C] Fools and Roads
    [CF1485C] Floor and Mod
    [CF1399D] Binary String To Subsequences
  • 原文地址:https://www.cnblogs.com/chenyanbin/p/13382636.html
Copyright © 2011-2022 走看看