两个对象的hashcode不同肯定两个对象不相等;如果hashcode相等(也不一定两个对象相等)要进一步通过equals判断
下面引用网友的话,还是有些赞同的:
如果两个对象根据equals(Object o)方法是相等的,则调用这两个对象中任一对象的hashCode方法必须产生相同的整数结果。
如果两个对象根据equals(Object o)方法是不相等的,则调用这两个对象中任一个对象的hashCode方法,不要求产生不同的整数结果(原因:Object 提供的 hashCode() 的缺省实施通过将对象的内存地址对映于一个整数值来生成。当地址空间大于 int 值的范围,两个不同的对象有相同的 hashCode() 是可能的。)但如果能不同,则可能提高散列表的性能。
一般判断两个对象是否相等时,先调用hashcode(),相等然后调用equals(),再相等才返回true