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操作窗口大小?