社区
Java EE
帖子详情
关于重写equals方法的一个问题
nick207
2008-07-05 10:22:55
谁能说下 重写这个方法的目的是什么呢/
通常在什么情况下才需要重写呢
...全文
133
4
打赏
收藏
关于重写equals方法的一个问题
谁能说下 重写这个方法的目的是什么呢/ 通常在什么情况下才需要重写呢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ZangXT
2008-07-06
打赏
举报
回复
还有要注意重写 equals方法时一般要同时重写hashCode方法,来保证equals为true的两个对象具有相同的hashcode。
ZangXT
2008-07-06
打赏
举报
回复
Object中equals方法实现如下:
public boolean equals(Object obj) {
return (this == obj);
}
比较两个对象是否相同,而在实际情况中,大部分是比较对象的内容是否相同,判断两个对象是否相同用==,判断对象的内容是否相同用equals(),这是就要实现自己的equals。
举个例子,String中重写了equals方法,用来比较两个字符串是否相同。
看个简单的情况,应该能明白了:
public class Test {
public static void main(String[] args) {
Object o1=new Object();
Object o2=new Object();
System.out.println(o1==o2);
System.out.println(o1.equals(o2));
String str1=new String("abc");
String str2=new String("abc");
System.out.println(str1==str2);
System.out.println(str1.equals(str2));
}
}
对于Object的对象o1和o2,应为不是相同的对象,所以前两个输出语句的结果都是false
对于String类型的对象str1和 str2,也不是相同的对象,所以str1==str2是false,而因为两个对象内容相同,所以str1.equals(str2)为true
自己再体会一下。
老紫竹
2008-07-05
打赏
举报
回复
父类提供的功能不满足你的要求时,或者扩充,增强父类的功能时!
【Java基础】
重写
equals
方法
详讲
重写
equals
方法
【Java比较学习】
重写
equals
方法
的安全写法
重写
equals
方法
的两种方式 这里提供两个比较常见的
equals
重写
方法
: ● 用instanceof实现
重写
equals
方法
● 用getClass实现
重写
equals
方法
先说结论,...
Java
重写
equals
方法
实现去重
我们经常会遇到一些业务,要对数据进行去重,我们可能首先想到的就是
重写
equals
方法
,但是结果却不尽人意,这是为啥呢?其实还需要
重写
hashCode
方法
,因为光
重写
equals
方法
是不够的 public class Test { private...
如何
重写
equals
方法
但是我们往往需要比较的是对象的内容是否是一样的,除了几个内置
重写
了
equals
方法
的类型,我们写的bean一般都要自己
重写
equals
方法
才能让它比较的是对象的内容。
重写
equals
方法
示例: User.java public class User ...
为什么
重写
equals
方法
时一定要
重写
hashCode
方法
当在
一个
应用程序执行过程中, 如果在
equals
方法
比较中没有修改任何信息, 在
一个
对象上重复调用 hashCode
方法
时,它必须始终返回相同的值。从
一个
应用程序到另
一个
应用程序的每一次执行返回的值 可以是不一致的...
为什么
重写
equals
(
equals
与 == 的区别),为什么
重写
equals
通常需要
重写
hashCode (
equals
与 hashCode 的区别)
自定义的类会继承 Object,Object 的
equals
方法
是==,== 比较的是地址,不符合规范,所以需要
重写
。 1.2. 为什么
重写
equals
通常需要
重写
hashCode (
equals
与 hashCode 的区别) hashCode用于返回对象的哈希...
Java EE
67,538
社区成员
225,852
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章