Java - TreeSet and hashCode()
我有一个关于TreeSet
集合和hashCode
方法的快速问题。我有一个,我正在向它添加对象,在我添加对象之前,我检查它是否存在于 using the contains
方法中。TreeSet
TreeSet
我有2个不同的对象,每个对象都使用我的hashCode方法实现产生一个不同的哈希码,示例如下:
public int hashCode()
{
int hash = 7;
hash = hash * 31 + anAttribute.hashCode();
hash = hash * 31 + anotherAttribute.hashCode();
hash = hash * 31 + yetAnotherAttribute.hashCode();
return hash;
}
特定运行的哈希代码是:76126352和76126353(对象在一个属性中仅相差一位数字)。
contains 方法对这些对象返回 true,即使哈希代码不同也是如此。任何想法为什么?这真的很令人困惑,帮助将不胜感激。