ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【散列表】拉链法以及线性探查法

2021-02-02 13:35:27  阅读:174  来源: 互联网

标签:线性探查 拉链 equals hashCode 余数 列表 散列


1.散列表的查找步骤:

(1)将查找的键用散列函数转化为数组的一个索引

(2)处理碰撞冲突的过程:拉链法、线性查找法

2.散列函数的不同类型的不同应用:

如果键为一个数,可以直接使用

如果键为一个字符串,如人名,需要将字符串转化为一个数

如果有多个部分,如邮箱,用某种方法结合起来

3.正整数的散列函数

除留余数法:

选择大小为M的素数(除了1没有其他因数的数)的数组。对于任意数k,计算k除以M的余数。

4.浮点数:

将键表示为二进制数,然后应用除留余数法。

5.字符串:

 

 

6.组合键(年月日)

 

 7.hashCode()方法

每一个数据类型的hashCode方法和equals方法必须一致。

a.equals(b)返回为true时 必须a.hashCode() b.hashCode返回值必须一致

两个对象a b如果hashCode值相同 ,不一定意味着对象相同,还需要比较equals

8.HashMap使用hashcode进行索引 

如果重写了equals方法 必须要看一下hashcode方法

因为要满足 

a.equals(b)返回为true时 必须a.hashCode() b.hashCode返回值必须一致

 9.基于拉链法的散列表

 

 10.基于线性探查法的散列表

 

标签:线性探查,拉链,equals,hashCode,余数,列表,散列
来源: https://www.cnblogs.com/cckong/p/14361467.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有