首页 > 其他 > 详细

equals和==的区别

时间:2021-05-28 11:35:43      阅读:18      评论:0      收藏:0      [点我收藏+]

在学习hashset的时候,对hashset怎么判断元素唯一性不太理解,于是便去网上学习和询问大佬,希望一下内容能够帮助你

技术分享图片

set集合怎么去保证元素的唯一性?

‘==‘和‘equals‘方法的区别:如果一个类没有重写equals方法,那么equals和==是一样的,都是去比较的内存地址

技术分享图片

hashcode和equals方法的关系

equals相等,hashcode必须相等

equals不相等,hashcode可以相等,也可以不相等,不相等可以提高性能

所以,hashset的元素唯一性是根据equals和hashcode来判断的;首先,在添加add元素的时候,计算先添加的元素

的hashcode,得到一个结果,然后把这个结果去这个集合里面找,看有没有相同的hashcode,如果没有意味着内存地址不相等,该元素唯一可以直接添加; 如果有相同的hashcode,在比较equals是否相等,如果相等,则表示新添加的元素在集合中已经存在,忽略,不添加。如果不相等,则直接添加(因为equals不相等,hashcode既可以相等也可以不等,总的来说我们还是比较的equals,只是借助于hashcode的比较来反映)

equals和==的区别

原文:https://www.cnblogs.com/acyss/p/14820966.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!