Java判定对象相同
equals方法是用来判断两个对象是否"相同":如果没有进行重写 那么默认默认情况下equals方法的实现就是比较两个对象是否一样。
boolean equals(Object obj){
return this==obj;
}
但大多数的对象都重写了equals方法,重写的方法大多数比较两个对象中的内容是否相同。
boolean equals(Object obj){
if(obj instanceof Name){
if(obj.name=this.name){
return true;
}else{
return false;
}
}
return false;
}
HashCode
代表对象的内存地址.
对象加入散列
一个对象加入散列时,首先会判断它的hashCode是否一致,如果一致直接放入到散列中。如果hashCode不一致,会比较equals.如果equals不一致,也可以加入到散列。否则不能加入散列中。也就是说。要想安全的将一个对象放入散列,需要同时重写hashCode和equals方法。并且中途不能修改他们的条件
https://juejin.im/post/5a7c5b285188257a5a4ca224