我定義了一個equals方法,但是Hashtable忽略它。爲什麼?我定義了一個equals方法,但是Hashtable忽略它。爲什麼?
回答
首先,確保您使用的是正確的集合:您可能需要而不是HashMap。其次,確保你已經正確地定義了equals()(equals(Object o)),並且確保你已經實現了一個工作的hashCode()。
HashTable
作品使用hashCode()
和equals()
它使用兩者。您可以將hashCode()定義爲返回常量,並且該地圖仍然可以工作;它不會是非常優化的。 – 2011-04-07 12:38:34
@Joseph Ottinger在張貼後發現並改變了這5秒:D – Tnem 2011-04-07 12:39:06
除了覆蓋equals
你也應該提供一個方法hashCode()
@Override
public boolean equals(Object obj) {
// ...
}
@Override
public int hashCode() {
// ....
}
hashCode()是正確的。 – 2011-04-07 12:41:07
- 1. 爲什麼在Equals方法中忽略Uri的片段?
- 2. 爲什麼我PartialMock方法忽略了我的意料
- 3. 爲什麼Hashtable的equals方法測試值爲null的情況
- 4. 爲什麼我的包忽略了它的info.plist?
- 5. 未定義的方法錯誤,但我定義了它!
- 6. 爲什麼我的自定義ListCellRenderer忽略了我對setText的調用?
- 7. 爲什麼流利的NHibernate 1.3忽略了我的約定?
- 8. Scala爲什麼List類定義了一個toList方法?
- 9. Django - NoReverseMatch。我忽略了什麼?
- 10. 爲什麼QWebFrame忽略了我的HTML的很大一部分?
- 11. 爲什麼Gradle忽略了我的一些依賴關係?
- 12. 爲什麼==不工作,但.equals()是?
- 13. 我宣佈了一個變量,但它是「沒有定義」
- 14. NSDateComponentsFormatter忽略了單位。爲什麼?
- 15. 爲什麼DelayedJob忽略了delayed_job_config.rb?
- 16. 爲什麼?mod_rewrite忽略了XDEBUG_PROFILE = true?
- 17. 爲什麼忽略了[UISearchBar showsScopeBar]?
- 18. 爲什麼我爲#找到一個未定義的方法`xpath'?
- 19. 忽略equals上IEquatable
- 20. 爲什麼我的自定義JSONEncoder.default()忽略布爾值?
- 21. 爲什麼我的自定義路線被忽略?
- 22. 爲什麼DataPager忽略我的自定義IPagedCollectionView
- 23. 是否有一個屬性忽略了設計時的方法?
- 24. 爲什麼它忽略了第二字符
- 25. 爲什麼`decode(_:forKey:)`忽略它的第一個參數?
- 26. DataFrame.describe方法忽略了一些列
- 27. 爲什麼忽略header()函數我的方法的結果?
- 28. 我得到了一個Ruby腳本未定義的方法 'when_present',但它在IRB
- 29. 爲什麼在main中定義一個方法在Object和main.singleton_class中定義它?
- 30. 爲什麼我的html代碼忽略了我的js?
你也可以定義'的hashCode()'? – asgs 2011-04-07 12:36:45
可能你以前一直對它不友好。 – Lazarus 2011-04-07 12:37:39
從[Java IAQ複製 - 我定義了一個equals方法,但是Hashtable忽略它。爲什麼?](http://norvig.com/java-iaq.html#equals)Peter Norvig。 – Dori 2011-04-09 06:56:22