Java 我定义了一个equals方法,但Hashtable忽略了它。为什么?
我定义了一个equals方法,但Hashtable忽略了它。为什么?首先,确保使用了正确的集合:您可能希望使用HashMap。其次,确保您正确定义了equals()(equals(Object o)),还确保您实现了一个工作的hashCode()。Java 我定义了一个equals方法,但Hashtable忽略了它。为什么?,java,collections,hashtable,Java,Collections,Hashtable,我定义了一个equals方法,但Hashtable忽略了它。为什么?首先,确保使用了正确的集合:您可能希望使用HashMap。其次,确保您正确定义了equals()(equals(Object o)),还确保您实现了一个工作的hashCode()。HashTable通过使用hashCode()和equals()以及重写equals您还应该提供一个方法hashCode() 您是否也定义了hashCode()?可能是您过去对它不友好。由Peter Norvig复制。它同时使用了这两种方法。您可以将h
HashTable
通过使用hashCode()
和equals()以及重写equals
您还应该提供一个方法hashCode()
您是否也定义了hashCode()
?可能是您过去对它不友好。由Peter Norvig复制。它同时使用了这两种方法。您可以将hashCode()定义为返回一个常量,映射仍然有效;约瑟夫·奥廷格在发帖5秒后意识到这一点,并更改为:D
@Override
public boolean equals(Object obj) {
// ...
}
@Override
public int hashCode() {
// ....
}