我看了你的问题后,感觉你是不是不明白用hashCode来比较对象是否在同一个区域为什么不像equals方法一样是在内部比,也不知道他在哪里才用来比较。
首先如果我们用来存取对象的集合类是采用哈希存储方式的,那这时从写hashCode方法才有意义,像HashSet,HashTable,HashMap这些就是用hash存储策略的。每当你往这些hash存储策略的集合类里面存或者是取对象的时候会先调用调用对象的hashCode方法确定应该将对象放在哪个地方或者从什么地方去取!如果发现有对象的hashCode跟自己的一样,接着就会调用equal方法来做第2次比较,如果equal相等才是真正的相等。
在方法里你只要返回一个hashCode就可以了,比较是系统自己来的。你可以参考我的博客心得 |