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

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

    什么是散列表

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

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

    链式哈希表

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

    区别

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

    个性签名:没有学不会的技术,只有不学习的人!
    联系方式:543210188(WeChat/QQ),推荐WeChat
  • 相关阅读:
    hdu 3342 Legal or Not 拓排序
    hdu 1596 find the safest road Dijkstra
    hdu 1874 畅通工程续 Dijkstra
    poj 2676 sudoku dfs
    poj 2251 BFS
    poj Prime Path BFS
    poj 3278 BFS
    poj 2387 Dijkstra 模板
    poj 3083 DFS 和BFS
    poj 1062 昂贵的聘礼 dijkstra
  • 原文地址:https://www.cnblogs.com/chenyanbin/p/13382636.html
Copyright © 2011-2022 走看看