HashSet常量時間操作的大小操作如何?
我讀過包含和大小操作是恆定的時間。
雖然我明白如何包含恆定時間的操作,不會將大小操作與元素數量成比例(不是線性)?HashSet大小操作
1
A
回答
2
簡短的回答 - 它被緩存了。
較長的答案: HashSet
是Set
實現,持有HashMap
,所有的值是相同的「虛擬價值」。這是size()
方法只返回地圖的size()
。如果你看看HashMap
的實現,你會發現它有一個size
成員。將元素添加到地圖(例如,使用put
或putAll
)可增加size
,並從中刪除元素可減少size
。這樣,因爲size
始終保持最新狀態,所以在調用size()
時可以簡單地返回,保證持續執行時間。
2
HashSet內部存儲它有多少個元素。
wouldnt size operation是否與元素數成比例(非線性)?
如果沒有存儲在現場記錄保存,大小()將正比於後盾哈希表的大小,而不是元素的數量,因爲你必須在掃描所有的條目,看看是否有東西。除了散列表被分配爲顯着太大或者刪除了很多元素之外,這些往往是相同的(2倍以內)。
相關問題
- 1. Hashset大小問題
- 2. Java HashSet錯誤的大小
- 3. IMap Hazelcast大小操作
- 4. HashSet方法中的操作順序add()
- 5. AppCompat操作欄大小與ActionBarSherlock的大小不同
- 6. 多個小型DOM操作與一個大型DOM操作
- 7. 更改操作表的按鈕大小?
- 8. 試圖更改操作欄大小
- 9. 什麼是各種小HashSet和1個大HashSet之間的搜索區別?
- 10. HashSet的最大尺寸
- 11. 重大刪除操作後Neo4J存儲大小增加
- 12. java最大堆大小和操作系統頂部輸出
- 13. 操作系統中頁面大小和頁面大小之間的關係
- 14. C++/ASM - 「操作數大小衝突」,「不正確的操作數類型」
- 15. 製作map ::查找不區分大小寫的操作
- 16. 大O操作數
- 17. Google App Engine Java小操作
- 18. 工作組大小
- 19. RET默認的操作數大小是多少?
- 20. 大小寫分隔字符串操作MySQL
- 21. 獲取的文件和文件大小,操作
- 22. 大端排序和小端排序差別的按位操作
- 23. 批處理sqlcmd使用大於/小於操作數
- 24. 窗口上的DOM操作通過Backbone Events調整大小
- 25. 在PHP中使用大寫和小寫字符串操作
- 26. x86彙編中的操作數大小衝突?
- 27. 什麼是Algolia操作的每個批次的大小限制
- 28. 操作系統如何確定虛擬內存的大小
- 29. MS - Access 2007數據庫操作和MDB文件大小
- 30. 通過編譯代碼在Linux操作窗口大小?