java hash表_Java Hash表 数据结构

散列表,又称哈希表,是一种高效的数据结构,它通过使用Hash函数将关键码映射到特定位置,实现了快速查找、增加和删除操作。这种数据结构结合了数组(内存地址连续,查询快)和链表(内存地址不连续,增删快)的优点,通过取模运算或更复杂的Hash函数确定元素的存储位置,大大减少了平均查找时间。
摘要由CSDN通过智能技术生成

思考:

数组由于内存地址连续,是一种查询快增删慢的数据结构;

3f418eae9a570d31b2eeb7f944227d35.png

链表由于内存地址不连续,是一种查询慢增删快的数据结构;

7c8c0590e02010dc14f7d298f7d190ff.png

那么怎么实现查询又快,增删也快的数据结构呢?

要是把数组和链表结合起来会怎么样?

如下图所示这就是散列表的数据结构图,它由数组和链表构成,拥有数组和链表的优点。

b1e2273e23fcf179b2fafc72778265ec.png

那么散列表是怎么实现数据的快速查找和增删的呢?

举个例子 现在你要查找1-50之间的数45,你需要依次遍历每个元素直到找到45为止;

0->1->2->3->4->5->6->7->8->9->10->11->12->13->14->15->16->17->18->19->20->21->22->23->24->25->26->27->28->29->30->31->32->33->34->35->36->37->38->39->40->41->42->43->44->45

现在有一种新的存储方式,在查找之前你需要先计算一次,再通过计算得到的值去查找,比如说先把要查找的数除以5得到余数,通过余数去查找:

0->5->10->15->20->25->30->35->40->45

47d0cc2e5bfa284b4e72e94b044ce79d.png

通过对比是不是查找快很多了呢,而且由于是链式储存的增删过程也要快很多。

这时再回顾这个过程,先通过计算得到查询的起点,再在起点依次查询,这个计算实际上就是一次hash运算也叫做Hash函数,在实际应用中函数函数要比上面的取模运算复杂得多,但是原理是一样的。

散列表又叫做哈希表(HashTable),是根据关键码值(即键值对)而直接访问的数据结构。也就是说,它通过把关键码映射到表中一个位置来访问记录,以加快查找速度。

暂时写到这里!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值