码迷,mamicode.com
首页 > 其他好文 > 详细

equal和hashcode、==

时间:2018-10-13 10:56:46      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:区别   shc   需要   size   运算符   变量   ash   类型   strong   

一:

==是运算符,用于比较两个变量是否相等;

equals是Object类的方法,用于比较两个对象是否相等;

hashCode()是Object类的一个方法,返回一个哈希值

二:区别

基本类型比较用==,比较的是他们的。默认下,对象==比较时,比较的是内存地址,如果需要比较对象内容,需要重写equal方法

如果两个对象根据equal()方法比较相等,那么调用这两个对象中任意一个对象的hashCode()方法必须产生相同的哈希值。

如果两个对象根据eqaul()方法比较不相等,那么产生的哈希值不一定相等(碰撞的情况下还是会相等的。)

  有可能两个不相等的对象有相同的hashcode

总结:两个对象相等,必须有相同的hashcode 值,反之不成立

equal和hashcode、==

标签:区别   shc   需要   size   运算符   变量   ash   类型   strong   

原文地址:https://www.cnblogs.com/hplsharenote/p/9782122.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!