美文网首页
数据结构(四)哈希表入门

数据结构(四)哈希表入门

作者: YangDxg | 来源:发表于2019-03-04 10:06 被阅读0次

哈希表(Hash table)

哈希表,也叫散列表,是根据关键代码(key,value)而进行访问的数据结构,它通过把关键码映射到表中一个位置来访问记录,以加快查找的速度.

关键码值(key,vale)也可以当成是key的hash值,这个映射函数叫做散列函数

存放记录的数组叫做散列表


特点

  • 数组(顺序表):寻址容易
  • 链表:插入与删除容易
  • 哈希表:寻址容易,插入删除也容易的数据结构,缺点:扩容会消耗大量的空间和性能
    应用点:在数组大小变话可能性比较少的情况下(电话号码,字典,点歌系统,QQ,微信好友)

1.hashtable例子

  • Key : {14, 19, 5, 7, 21, 1, 13, 0, 18}
  • 散列表: 大小为13 的数组 a[13];
  • 散列函数: f(x) = x mod 13;
  • hashtable需要自定义的内容:散列函数与散列表大小
    hash 冲突的解决方案
  • 装填因子:为什么需要这个值?因为数据越接近数组最大值,可能产生冲突的情况就越多,例如装填因子是9/13,放满9个后就会扩容(hashmap的装填因子是0.75),因为数据越接近数组最大值,可能产生冲突的情况就越来越多,扩容后散列函数会重新变,散列表中的值会重新计算,所有哈希表扩容会消费大量的空间和性能
  • image

2. 拉链法

jdk1.8以前,采用数组+链表

image
但当数据量特别大的时候,每个链表上的数据量也会特别大
,右移1.8以后采用当链表长度超过阈值,就转换红黑树 image
俩中方法查找的执行次数
image

相关文章

  • 数据结构(四)哈希表入门

    哈希表(Hash table) 哈希表,也叫散列表,是根据关键代码(key,value)而进行访问的数据结构,它通...

  • 数据结构_哈希表(Java)

    在讲解HashMap集合之前,我们先说说一个重要的数据结构---哈希表。哈希表是一种非常优秀数据结构,对哈希表进行...

  • 「Redis源码解读」—数据结构(二)哈希表

    Redis的字典使用哈希表作为底层实现 知识点 1.数据结构 哈希节点 哈希表 类型处理函数 2.哈希 哈希算法 ...

  • Tourist with Data Structure Thir

    探索哈希表 概念 哈希集合:哈希集合是集合数据结构的实现之一,用于存储非重复值。哈希映射 :哈希映射是映射数据结构...

  • 使用JavaScript实现哈希表

    关于哈希表的原理详见我的上一篇文章简单易懂数据结构之哈希表 前言 JavaScript中是有哈希类型的数据结构的,...

  • 程序员,你应该知道的数据结构之哈希表

    哈希表简介 哈希表也叫散列表,哈希表是一种数据结构,它提供了快速的插入操作和查找操作,无论哈希表总中有多少条数据,...

  • MySQL索引和锁

    Mysql索引使用的数据结构主要有BTree索引 和 哈希索引 。对于哈希索引来说,底层的数据结构就是哈希表,因此...

  • 哈希表,字典,数组,链表

    1:哈希表 的数据结构,底层实现原理 底层实现:数组 + 链表 哈希表(Hash table,也叫散列表)...

  • 哈希表与树的入门

    哈希表: 特点: 数组(顺序表):寻址容易 链表:插入与删除容易 哈希表:寻址容易,插入删除也容易的数据结构,也就...

  • 2.6 数据结构 --1.5 哈希表

    数据结构子目录https://www.jianshu.com/p/a344fa483655 哈希表 在了解哈希表之...

网友评论

      本文标题:数据结构(四)哈希表入门

      本文链接:https://www.haomeiwen.com/subject/tzrbuqtx.html