[发明专利]哈希表处理方法及装置在审
申请号: | 202210641049.X | 申请日: | 2022-06-08 |
公开(公告)号: | CN114860736A | 公开(公告)日: | 2022-08-05 |
发明(设计)人: | 钟俊奇;邓勇;黄照荣 | 申请(专利权)人: | 珠海金山数字网络科技有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/21;G06F16/23 |
代理公司: | 北京智信禾专利代理有限公司 11637 | 代理人: | 张瑞 |
地址: | 519000 广东省珠海市高新区唐家湾镇前岛环路325号102室*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 哈希表 处理 方法 装置 | ||
1.一种哈希表处理方法,其特征在于,包括:
获取哈希表创建请求,所述哈希表创建请求中携带哈希表容量信息;
根据所述哈希表容量信息和所述哈希表创建请求关联的存储数据类型,计算内存空间信息;
响应于所述哈希表创建请求,按照所述内存空间信息在内存中申请连续内存作为哈希表数据块;
在接收到针对所述哈希表数据块关联的哈希表提交的操作请求的情况下,根据所述操作请求对所述哈希表进行更新。
2.根据权利要求1所述的方法,其特征在于,所述响应于所述哈希表创建请求,按照所述内存空间信息在内存中申请连续内存作为哈希表数据块步骤执行之后,还包括:
对所述连续内存中的冗余数据进行删除处理,以及初始化所述哈希表对应的哈希表信息;其中,所述哈希表信息包括哈希表空闲槽索引信息和哈希表已用槽数量信息。
3.根据权利要求1所述的方法,其特征在于,所述响应于所述哈希表创建请求,按照所述内存空间信息在内存中申请连续内存作为哈希表数据块步骤执行之后,还包括:
根据所述哈希表容量信息确定所述哈希表对应的哈希值范围;
确定所述哈希表包含的数据槽位,并根据所述哈希值范围创建所述数据槽位对应的索引信息。
4.根据权利要求1所述的方法,其特征在于,所述根据所述操作请求对所述哈希表进行更新,包括:
在所述操作请求为数据插入请求的情况下,确定所述数据插入请求中携带的第一数据索引信息和第一数据;
通过哈希函数计算所述第一数据索引信息对应的第一哈希值;
在所述哈希表中确定所述第一哈希值关联的第一槽位,并将所述第一数据写入所述第一槽位,作为对所述哈希表的更新。
5.根据权利要求4所述的方法,其特征在于,所述在所述哈希表中确定所述第一哈希值关联的第一槽位,包括:
在所述哈希表中确定所述第一哈希值对应的第二槽位,并检测所述第二槽位的存储状态;
在所述第二槽位的存储状态为空闲状态的情况下,将所述第二槽位作为所述第一槽位;
在所述第二槽位的存储状态为占用状态的情况下,在所述哈希表中确定第一空闲槽位,并根据所述第一空闲槽位确定所述第一槽位。
6.根据权利要求5所述的方法,其特征在于,所述根据所述第一空闲槽位确定所述第一槽位,包括:
确定所述第二槽位关联的第二数据索引信息对应的第二哈希值,并将所述第二哈希值与所述第一哈希值进行比较;
在所述第二哈希值与所述第一哈希值相同的情况下,根据所述第二槽位和所述第一空闲槽位组成第一链表,并将所述第一链表中的空闲槽位作为所述第一槽位;
在所述第二哈希值与所述第一哈希值不相同的情况下,将所述第二槽位中存储的占位数据写入所述第一空闲槽位,并根据写入结果将所述第二槽位作为第一槽位。
7.根据权利要求1所述的方法,其特征在于,所述根据所述操作请求对所述哈希表进行更新,包括:
在所述操作请求为数据查询请求的情况下,确定所述数据查询请求携带的第三数据索引信息,并通过哈希函数计算所述第三数据索引信息对应的第三哈希值;
根据所述哈希表对应的槽位信息,判断所述哈希表中是否存在关联所述第三哈希值的第二链表;
若存在,根据所述第三数据索引信息遍历所述第二链表,获得响应于所述数据查询请求的第一目标数据,作为对所述哈希表的更新;
若不存在,根据所述第三哈希值在所述哈希表中确定第三槽位,并读取所述第三槽位存储的第二目标数据,作为对所述哈希表的更新。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于珠海金山数字网络科技有限公司,未经珠海金山数字网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210641049.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种催化剂及其制备方法和应用
- 下一篇:一种镶嵌式防盗门外框加工机械及工艺