社区
Java SE
帖子详情
小鸟求助~~希望大家帮忙~
cedared
2009-07-15 11:29:29
最近在自学JAVA看的是COREJAVA 然后讲到hashcode的时候有疑问了~书里给了这样一段代码:
public int hashCod()
{
return 7*name.hashCode()+11*new Double(salary).hashCode+13*hireDay.hashCode();
}
只是不明白7、11、13是怎么来的 书上也没有说 所以回家来问问大家 希望大家帮忙谢谢~~O(∩_∩)O
...全文
31
6
打赏
收藏
小鸟求助~~希望大家帮忙~
最近在自学JAVA看的是COREJAVA 然后讲到hashcode的时候有疑问了~书里给了这样一段代码: public int hashCod() { return 7*name.hashCode()+11*new Double(salary).hashCode+13*hireDay.hashCode(); } 只是不明白7、11、13是怎么来的 书上也没有说 所以回家来问问大家 希望大家帮忙谢谢~~O(∩_∩)O
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Edwin603
2009-07-15
打赏
举报
回复
印象不深了 不知道我的解释可以不 你想想楼主hashcode 最好是唯一的对不
但是由于上面如果不乘个东西很可能得到不同的东西+起来却是同一个值
比如你看 2+3+4=9 1+1+7=9
如果 7*1+11*3+13*4 还等于 7*1+11*1+13*7吗?
所以其实前面的数字 不是固定的只是为了让得到的结果 相等的几率变小 尽量保持唯一 当然就算唯一其实也没什么
后面用equals 在判定下 这是我的理解 印象不深了 希望启发下楼主```
Edwin603
2009-07-15
打赏
举报
回复
[Quote=引用 5 楼 nzz1985 的回复:]
更正下楼上的,散列表比较对象时hashcode是用来获取对象的,不会用来比较的,只有equals才是用来比较的
像13,7,31这样的数只是用来降低产生同义词的几率,尽量保证hashcode的唯一性
[/Quote]
不会用来比较的? 别一棒子打死 你这话绝对不对
我是记不清是哪个方法了 有个方法 在用时 必须 要自己定义好hashcode和equals 原因就是提高比较的效率
先用 hashcode 来比较,当然我的比较是说 是不是同一个元素 也许你认为比较就是 比较大小
ok?
nzz1985
2009-07-15
打赏
举报
回复
更正下楼上的,散列表比较对象时hashcode是用来获取对象的,不会用来比较的,只有equals才是用来比较的
像13,7,31这样的数只是用来降低产生同义词的几率,尽量保证hashcode的唯一性
Edwin603
2009-07-15
打赏
举报
回复
刚才又想了下 我在1楼的解释应该是对的 你想想 你那个肯定是重写了hashcode的方法
为的是 在比较对象是不是同一个 那个代码应该是这个意思,一般是先比较hashcode 在比较重写的equals方法
先比较hashcode 这样效率高些 所以自己的代码应该尽量使得每个对象的hashcode 保持唯一 所以才在每个成员变量前
加了数字 其实这个数字是可以自己改变的 但是目的是为了让 最后的hashcode 在不同的对象上表示不同的值
加了数字就会提高唯一的几率 当然加个 13 啊 7啊 或者29啊 非常好 千万别加 1 2 10 这样的数 !
印象中 你看的那本书后 应该有解释这个数字的原因 我也记不清楚了 楼主再仔细看看书后面是否有讲解!
angel6709
2009-07-15
打赏
举报
回复
i dont know
cwjieNo1
2009-07-15
打赏
举报
回复
hashCode相当于数字签名样的,前面这些数字是散列吗,通过哈希算法算出来的一大窜数字之类的东西和内存有关。所以每次这些数字都不一样的
python 对excel文件进行分词并进行词频统计_Python大佬分析了15万歌词,告诉你民谣歌手们到底在唱什么...
通过对15万条民谣歌词的分析,揭示了民谣歌手常提到的主题,如青春、远方及对未来充满
希望
的态度。此外,还分析了歌手偏爱的季节、日期以及地点。
啄木鸟素描画法,简单实用【从零基…
本文介绍绿拟啄木鸟的绘画技巧,包括使用较轻的线条概括外形,运用4B铅笔绘制羽毛的层次感,以及如何通过排线表现出整体的黑白灰关系等。适合初学者参考。
Python大佬分析了15万歌词,告诉你民谣歌手们到底在唱什么
通过对15万首民谣歌词的分析,揭示民谣歌手关注的主题,包括青春、孤独、远方及对未来的乐观态度。歌手偏好春天和明天,偏爱北京和南方城市,尤其成都。情感分析显示整体情绪积极。
爱情动作片《地心游记3D》
本文评价了电影《地心探险记》中3D技术的表现,指出3D效果大大提升了观影体验,使观众仿佛置身于游戏之中。文章还提到3D眼镜带来的不便,并比较了该片与其他3D电影的效果。
你对我的N个承诺
这是一篇记录一对恋人日常甜蜜生活的博客,从相信星座到一起面对生活的点点滴滴,展现了两人深厚的感情和对未来美好生活的憧憬。
Java SE
62,621
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章