當您在哈希中插入項目時,密鑰是否被編碼到物理內存空間,因此查找時間非常快?即不斷的查找時間。密鑰是否有散列表映射到內存位置?
0
A
回答
3
通過使用Entry
引用的數組,它具有接近恆定的查找時間(前提是您的碰撞數量很小)。
Java不直接操作地址位置,因爲這些地址可以隨時由GC更改。
0
哈希表的想法是將項目存儲在一個數組中,索引是從鍵快速計算出來的(在java的Hashtable
中調用hashcode()
這個鍵的方法,它用來獲取索引(模數表格的長度))。
當表格不是太滿時,這個表格中的這個表格中的元素(鏈接)很少。尋找元素只是將它們的鍵與傳遞的鍵進行比較。
因此,對於一個幾乎爲空的表而言,這是一個恆定的時間,但是當表變滿時會持續一段時間,因爲碰撞意味着您需要進行更多的比較。
相關問題
- 1. 映射,通過密鑰的散列/值
- 2. 如何將內存映射到散列映射到文件
- 3. 檢查映射是否包含密鑰
- 4. JPA2.0映射密鑰沒有存儲
- 5. 檢查密鑰是否存在於散列表中JSP Struts 2
- 6. 映射設置頁面到密鑰
- 7. VIM鍵映射到現有的密鑰
- 8. 使用散列表僅存儲密鑰?
- 9. Elixir映射檢查是否爲空並且存在密鑰
- 10. 加載散列 - 對象密鑰對的映射
- 11. 映射成輸入到輸出的散列表?這個函數是否存在?
- 12. 使用密鑰將列表映射到Automapper中的現有列表
- 13. 檢測F#密鑰是否映射到VIM上
- 14. Java:如何檢查密鑰是否映射到HashMap?
- 15. 無效密鑰散列密鑰散列不匹配任何存儲的密鑰散列
- 16. Android Facebook錯誤:無效密鑰散列。密鑰散列與任何存儲的密鑰散列不匹配
- 17. 如何檢查散列中的密鑰是否存在(redis)?
- 18. 內存映射文件的位置
- 19. 爪哇散列映射與單個字節[]數組所有密鑰
- 20. 散列映射數據類型是否有任何約束
- 21. Vim和密鑰映射
- 22. 使用AutoMapper將字典映射到列表並存儲它的密鑰
- 23. SQL錯誤:ORA-01779:無法修改映射到非密鑰保存表的列
- 24. 將密鑰映射到自身和另一個密鑰,而不覆蓋密鑰的先前映射
- 25. 在散列表中,密鑰是否與相應的值一起存儲?
- 26. 如何檢查密鑰和值是否已經存在於散列表
- 27. 檢查列/密鑰是否存在?
- 28. 字符串到列表的內存有效映射<String>
- 29. ehcache是否將所有密鑰保存在物理內存中?
- 30. 散列映射鍵 - 如果存在映射
http://en.wikipedia.org/wiki/Hash_table和http://en.wikipedia.org/wiki/Hash_function –