比如Dog是我定义的一个类。String a = new String(); String b = new String();用a.equals(b)返回的是true。Dog c = new Dog();Dog d = new Dog();用c.equals(d)返回的是false。请专业的技术人员回答一下,不知道的,刚来学习的不要乱回答。请专业的技术人员回答一下,不知道的,刚来学习的不要乱回答。请专业的技术人员回答一下,不知道的,刚来学习的不要乱回答。请专业的技术人员回答一下,不知道的,刚来学习的不要乱回答。请专业的技术人员回答一下,不知道的,刚来学习的不要乱回答。
2 回答
已采纳

geelylucky
TA贡献3条经验 获得超3个赞
String重写过equal方法~~
public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { String anotherString = (String) anObject; int n = value.length; if (n == anotherString.value.length) { char v1[] = value; char v2[] = anotherString.value; int i = 0; while (n-- != 0) { if (v1[i] != v2[i]) return false; i++; } return true; } } return false; }
另外Dog这个自定义类。
如果重写了Dog的equal也可以达到相同效果。
再延伸下去就是如果你要把Dog放到Set集合里。还需要重写hashcode
即重写Dog的hashcode和equal方法来判断重复。
具体为什么要重写hashcode和equal。
step1.请先自己思考一下。
step2.然后去网上搜索一下。
step3.结合起来总结。
希望你能把step3的输出写到这个帖子里,让更多的朋友看到。来share一下。
添加回答
举报
0/150
提交
取消