有沒有我可以在Java中找到各種數據結構的詳細實現信息的源代碼(HashMap,TreeSets等)。 例如:什麼是用於不同類型的散列函數?它是開放尋址還是其他的東西?類似的東西。 PS:我知道我可以通過源代碼。但是,我會離開一些日子:)在java中的數據結構的內部實現?
回答
從Javadoc開始,然後繼續來源,如果需要的話!
號的API文檔定義了集合類的外部行爲,但沒有實施細則,這可能是供應商特定的。如果你想知道如何在特定的虛擬機中實現這些類,你別無選擇,只能檢查源代碼。
至少AFAIK,沒有Java API的實現,並提供了有關這些特定細節的額外文檔。
由於Java是開源的,因此實現本身是最好的選擇。
如果您使用Eclipse並配置了源代碼,只需按住Ctrl +左鍵點擊所需的數據結構聲明即可。 tt將爲此開源。
API文檔不提供實現細節。
我不知道你是什麼級別的細節?
我可以告訴你什麼對我來說足夠了。我總是從NetBeans獲得它。在那裏,我可以按住CTRL,點擊任何類名,並將我帶入其代碼。通過這種方式,您可以將文檔和代碼放在您面前的一個位置,您可以看到它們是如何實現的,以及它們在文檔中描述的內容。
希望它有幫助。
編輯:
在HashMap中的行247,這是在HashSet的則在它曾經創造,描述了一個哈希函數也許這就是你想要什麼?
/**
* Applies a supplemental hash function to a given hashCode, which
* defends against poor quality hash functions. This is critical
* because HashMap uses power-of-two length hash tables, that
* otherwise encounter collisions for hashCodes that do not differ
* in lower bits. Note: Null keys always map to hash 0, thus index 0.
*/
static int hash(int h) {
// This function ensures that hashCodes that differ only by
// constant multiples at each bit position have a bounded
// number of collisions (approximately 8 at default load factor).
h ^= (h >>> 20)^(h >>> 12);
return h^(h >>> 7)^(h >>> 4);
}
在HashSet的情況下,什麼是散列函數
@Kartik Rustagi檢查編輯,也許這是足夠詳細的,我希望。 – Boro 2011-05-26 21:26:58
- 1. 在java中實現數據結構
- 2. Java樹數據結構實現
- 3. 在java中實現它們的遊戲樹和數據結構?
- 4. Java的堆結構實現
- 5. 在數據結構中實現隊列
- 6. 在C++中實現數據結構
- 7. Redis內部結構 - LRU實現抽樣
- 8. Golang - 內部結構如何實現?
- 9. 試圖在java中實現trie數據結構
- 10. 如何在Java中實現設置數據結構?
- 11. Java:地圖中的內部數據結構
- 12. Java中的嵌套數據結構(內部類)
- 13. C++實現的數據結構庫?
- 14. 實現上的數據結構
- 15. 實現算法和數據結構的
- 16. R的數據集的內部實現
- 17. 對應於java集合的ruby數據結構實現
- 18. 在java中需要內部實現HashTable
- 19. 內存Trie實現的高效數據結構
- 20. 關於在c中實現圖的數據結構的想法
- 21. 內部實現數據庫的查詢
- 22. 在Java中使用的數據結構
- 23. 在PHP中實現數據結構的最佳方式?
- 24. 在C++中設計Prim實現的數據結構
- 25. 在C++中實現序列化的數據結構對齊
- 26. 在C++中實現複雜的數據結構
- 27. 在ExtJS表格中實現複雜的數據結構
- 28. Java新的關鍵字內部結構
- 29. 實現樹型數據結構
- 30. 數據結構來實現連接
來源*是詳細的實施細節。你會期望什麼比這更好? – 2011-05-26 16:31:48
你有沒有試過wikipedia.org?我聽說這是一個很好的資源。 – 2011-05-26 16:34:36
你在尋找什麼級別的細節?我能告訴你的唯一的事情就是一天結束時的一切。 – Woot4Moo 2011-05-26 16:35:16