小弟求解,equale,hashcode
public boolean equals(Object o){//
if(o == null){//
return false;//
}
if(this==o){//
return true;//
}
if(o instanceof Node){//
Node other = (Node)o;//
return this.i ==other.i &&//
this.j ==other.j;//
}
return false;//
}
public int hashcode(){//
return i*10000+j;//
}
为什么每次写代码都要写这两个啊,还有就是这些代码什么意思啊?给注释下,谢谢!
------解决方案--------------------equals函数用于对象比较,若不重写对象比较是会调用Object的equals方法,比较得到结果出错
hashCode用于得到对象哈希码,使相同对象的哈希码相同,确保比较的正确性
------解决方案--------------------hashMap那些东西会在比较值时用到hashCode,重写hashCode可以丢到hashMap里面再比较hashMap的equals方法就有效了,
equals则是为了比较两个对象的属性值