重写hashcode()如何理解

重写hashcode()如何理解

result=prime*result+((name==null)?0:name.hashCode);

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

您好,重写hashcode()和equals()方法判断信息是否相等。在向集合中添加对象时,先用hashcode方法计算出该对象的哈希码。如果该对象哈希码与集合已存在对象的哈希码一致,则去调用equals()判断该对象有没有与其他对象重复,没有重复就添加到集合中。

贴出的代码是指?因为简单的规则就可以满足我们的需求,所以使用工具为我们自动生成了hashcode()方法中的代码,如果想修改也可以自己修改。祝学习愉快!

  • 徐昌昊 提问者 #1
    我想问的是我贴出这句代码的实现意思
    2018-12-06 15:04:50
  • 好帮手慕查理 回复 提问者 徐昌昊 #2
    您好,((name==null)?0:name.hashCode)使用了三目运算符:判断条件?结果为真输出此处内容:结果为假输出此处内容。当name=null时,返回0与之前内容进行计算,当name!=null时,返回name.hashCode(调用字符串的hashCode方法,进行算法)与之前内容进行计算,最后通过计算获得result的值,最后将result返回。祝学习愉快!
    2018-12-06 17:31:17
  • 徐昌昊 提问者 回复 好帮手慕查理 #3
    懂了,谢谢
    2018-12-06 17:35:54
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师