为什么 java Object 类有两个方法 hashcode() 和 equals()?其中一个看起来多余并且渗透到最底层的派生类?
最佳答案
为什么你认为一个是多余的?他们说不同的话:
hashCode
是“给我一些有效查看两个对象是否可能相等的方法”equals
是“检查这个对象是否真的等于另一个”
你绝对需要两者 - although I don't believe they should really be in Object in the first place .
为了使用哈希表执行高效查找,您绝对需要哈希码 - 而且您绝对需要进一步的相等性检查,因为哈希会发生冲突(例如,可能的字符串比哈希码多得多) .
关于java - 为什么 hashCode() 和 equals() 都存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2469282/