Golang关于HashMap的解析

Golang关于HashMap的解析

开门见山,进入正题



HashMap的介绍

hashMap在程序开发中用的还是很多的,一般都会用到。在做映射的时候还是很方便,那么在golang中是怎样实现的呢?


首先,我们知道Map是由KEY和Value(键值对)组成,且MAP通过桶(bucket)来存储键值对,那么其是通过什么规律来存储的呢?

一、键值对存储规则

他是怎么知道我们的某一个键值对是放到哪个桶里的呢?

1、首先会先通过hash函数获得key的hash值;
2、通过对key的hash值进行计算得到存入的桶的地址并进行存储,目前有两种得到桶地址的方式:
取模法: key-hash / m(桶的个数) ,
与运算法:key-hash & (m-1) (m为桶的个数)

通过两种方式来确认放入到哪个桶中。
目前基本上都是按照与运算法来确认放入到哪个桶;因为通过与运算法可以确保所有桶都有键值对落入。

问:为什么与

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值