一、什么情况下需要重写equals和hashcode()两个方法?
1、加入到hashset中的自定义类的对象,为确保他们不重复,需要对他们的类重写equals()和hashcode()的方法。
如果不重写equals,相同内容不同引用的对象会被当做不同的对象被加入到hashset中。
重写equals()的示例代码:
public boolean equals(Object obj){//这里不可以写成自定义类型自定义类型引用,这样集
<span style="white-space:pre"> </span> //合框架的底层不会调用这个重载的方法。
<span style="white-space:pre"> </span>if(!(obj instanceof Person)){
<span style="white-space:pre"> </span>return false;
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>Personp =(Person)obj;
<span style="white-space:pre"> </span>//用来查看equals方法是否被调用
<span style="white-space:pre"> </span>sop(this.name +".......equals......."+ p.name);
<span style="white-space:pre&