博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
equals() 和 hashCode()
阅读量:6976 次
发布时间:2019-06-27

本文共 660 字,大约阅读时间需要 2 分钟。

equals() 和 hashCode()

这两个方法在java.lang.Object中,所有的类都可以继承这两个方法;

但是,这两个方法在Object类中的实现一般没什么用,所以你通常需要自己重载这两个方法。

任何equals()方法的基本设计约束是,如果传递给它的对象属于同一个类,而且它的数据字段设定为表示同样数据的值,那么它就应该返回true。你也应该确信,如果传递一个空的参数给该方法,那么你的代码返回false:public boolean equals(Object o)

{
if ( (o == null)
|| !(o instanceof myClass))
{
return false;
}
}
另外,在设计一个hashCode()方法时,应该记住一些规则。首先,该方法必须为一个特定的对象返回相同的值,而不管这个方法被调用了多少次(当然,只要对象的内容在调用之间没有改变,在将一个对象用做一个hashtable的key时,应该避免这一点)。第二,如果由你的equals()方法定义的两个对象是相等的,那么它们也必须生成相同的哈希码。第三,这更像是一个方针,而不是一个原则,你应该设法设计方法,使它为不同的对象内容生成不同的结果。如果偶尔不同的对象正好生成了相同的哈希码,这也不要紧。但是,如果该方法只能返回范围在1到10的值,那么只能用10个列表,而不管在hashtable中有多少个列表。

转载于:https://www.cnblogs.com/zongyl/p/8044438.html

你可能感兴趣的文章
第22周二
查看>>
数位dp(求1-n中数字1出现的个数)
查看>>
AMD and CMD are dead之js模块化黑魔法
查看>>
Tesseract 3 语言数据的训练方法
查看>>
memcached Logging
查看>>
数学图形(1.40)T_parameter
查看>>
js获取Html元素的实际宽度高度
查看>>
SiteMapPath基本用法
查看>>
struts2学习笔记--线程安全问题小结
查看>>
task
查看>>
ecshop修改注册、增加手机
查看>>
hdu 5713(状态压缩DP)
查看>>
avascript中的this与函数讲解
查看>>
python的zip函数
查看>>
计算机网络第一课
查看>>
css去掉a标签点击后的虚线框
查看>>
搭建Docker私有仓库--自签名方式
查看>>
【WEB API项目实战干货系列】- API登录与身份验证(三)
查看>>
在WPS绿色版中增加自定义皮肤
查看>>
springMVC参数绑定与数据回显
查看>>