我已經創建了一個使用內置java.util.hashtable的程序,但現在我需要使用單獨的鏈接來解決衝突。這個hashtable的實現可能嗎?那裏已經有一個使用單獨的鏈接嗎?具有獨立鏈接衝突解決方案的Java哈希表?
2
A
回答
4
查看Hashtable實現的source,看起來它已經使用單獨的鏈接。如果您看到從901行開始的Entry<K,V>
類,您會看到它有一個對名爲next
的另一個Entry的引用。然後,如果您查看put()
方法,則在第420行,next
引用通過構造函數填充爲以前存儲在該存儲桶中的任何元素。
請注意,您通常不應該擔心諸如這些的實現細節。 Java集合框架可能是Java中使用最廣泛的框架之一,因此您應該假定作者已經將性能調整到了最佳狀態。
我想指出的另外一件事是,Hashtable類已經被HashMap
類(它也使用單獨的鏈接,請參閱here)大部分替代。兩者的主要區別在於Hashtable
中的所有方法都是同步的,而在HashMap
中則不是。在單線程環境下運行的情況下(這可能是此問題的原因),這會帶來更好的性能。
如果做需要一個線程安全的Map實現,那麼你應該考慮要麼包裹在通話正常HashMap
到Collections.synchronizedMap()
,或使用ConcurrentHashMap
。
相關問題
- 1. Couchdb衝突解決方案
- 2. Java GUI解決方案獨立縮放
- 3. 兩個哈希表,帶有雙鍵或不同解決方案的哈希表?
- 4. java哈希函數衝突
- 5. Java哈希衝突概率
- 6. 使用哈希表和鏈接列表的C++訪問衝突
- 7. 用於衝突解決方案的GUI
- 8. documentdb中的衝突解決方案
- 9. 哈希表執行衝突避免和解決在C++
- 10. 單獨鏈接的哈希表
- 11. 同步框架衝突解決方案
- 12. 解決方案涼亭版本衝突
- 13. 代碼Coveragein獨立解決方案
- 14. 如何恢復我的解決方案來解決衝突?
- 15. 哈希錶鏈接
- 16. 原型JS哈希表替代/ Jquery解決方案
- 17. 哈希表碰撞檢測解決方案
- 18. 通用哈希與衝突
- 19. 處理哈希衝突
- 20. JAXB,XSD樣式表和元素名稱衝突解決方案
- 21. 衝突解決方案上有兩個服務
- 22. 衝突解決?
- 23. 解決衝突
- 24. 解決衝突
- 25. 解決衝突
- 26. 鏈接在哈希表
- 27. 使用PHP和javaScript登錄解決方案的密碼哈希
- 28. 如何建立解決方案獨立網站?
- 29. C++ ADT在HashTable上設置實現(解決與獨立列表的衝突)
- 30. 鏈式哈希錶鏈接列表