自定义键。如果我们实现哈希表自己的钥匙,然后我们自定义的哈希表键都必须实现实现在哈希表
public int hashCode()
{
}
和
public Object equals(Object obj)
{
}
会有什么这些方法的实现?
自定义键。如果我们实现哈希表自己的钥匙,然后我们自定义的哈希表键都必须实现实现在哈希表
public int hashCode()
{
}
和
public Object equals(Object obj)
{
}
会有什么这些方法的实现?
读“有效的Java第二版”,这是它的一个好时机。
HashCode and Equals method in Java object – A pragmatic concept
非常感谢我的启发 – jezhilvalan 2009-07-10 09:50:10
看看dfa的帖子。他提供了有效Java的确切章节的链接。我最后的两个链接有点老了。第一个是很好的去。 – 2009-07-10 09:52:41
Effective Java 2nd edition对这两种方法具有最好的解释:检查血友病delanted here。
在您通过阅读effective java了解后,您可以使用commons lang EqualsBuilder和HashCodeBuilder来实现它。如果部件的性能并不十分重要,你甚至可以使用refelction方法是这样的:
public boolean equals(Object obj) {
return EqualsBuilder.reflectionEquals(this, obj);
}
public int hashCode() {
return HashCodeBuilder.reflectionHashCode(this);
}
它没有变得更容易:)
这些方法用于散列表实施来标识元素,而插入和检索。
“public Object equals(Object obj)”必须读取“public boolean equals(Object obj)”。 – 2009-07-11 11:13:07