Dictionary.ContainsKey/Value和检查某个键/值的foreach循环之间是否存在速度差异?在Dictionary.ContainsKey/Value和检查某个键/值的foreach循环之间是否存在速度差异
2
A
回答
8
ContainsKey更快:
此方法接近的O(1)的操作。
ContainsValue就像是一个foreach循环。
该方法执行线性搜索;因此,平均执行时间与Count成正比。也就是说,这个方法是一个O(n)操作,其中n是Count。
+0
就这样!我认为它是在后台实现的二进制搜索... – Goran 2009-12-16 09:42:32
4
是的。
ContainsKey几乎是O(1)。至于ContainsValue,我无法确定,但我认为循环没有多大区别。
相关问题
- 1. “/\((.*)\)/”和“/ \(([^ \)] *)\)/”之间是否存在差异?
- 2. 如何检查当前循环中是否存在某个值?
- 3. WPF中的页面和窗口之间是否存在加载速度差异?
- 4. 检查是否存在,是否存在,是否为某个值
- 5. 为什么在Clojure的循环和迭代方法之间存在这样的速度差异
- 6. 的foreach循环 - 检查类是在
- 7. 使用循环来检查多个列中是否存在某些值
- 8. concat和||之间是否存在性能差异?在oracle
- 9. 递归和迭代方法之间是否存在时间复杂度差异?
- 10. 是否值得缓存foreach循环?
- 11. Android和Windows版本的Android SDK之间是否存在差异?
- 12. Apache FileUtils.isSymlink和Java7的Files.isSymbolicLink()之间是否存在差异?
- 13. 是否存在两个JSON之间差异的既定表示?
- 14. 使用Javascript检查某个键是否存在某个“值”对象
- 15. 检查foreach循环包含一个值
- 16. Java速度foreach循环
- 17. 速度模板foreach循环
- 18. 4.2和4.3之间是否存在UIImageView差异?
- 19. 检查在foreach循环中的数组是否为空
- 20. .net命名约定:长度和计数之间是否存在语义差异?
- 21. 差异在一个循环
- 22. UICollectionView和它的collectionViewLayout之间是否存在保留循环?
- 23. 检查列表中是否存在某个值以外的值
- 24. 如何检查两次之间的差异是否大于8.30?
- 25. Linqs查询表达式和点符号之间是否存在性能差异?
- 26. for循环检查是否存在散列表值不迭代
- 27. 性能 - 在使用foreach循环之前检查列表是否为空
- 28. 为什么这些SQL查询之间的速度差异?
- 29. PHP foreach循环键值
- 30. 循环中是否存在ConcurrentModificationException异常
为什么你不试试并告诉我们? – Rik 2009-12-16 09:25:03
为什么没有人试过并告诉我们!很多意见,没有数据。 – 2009-12-16 09:32:49
我试过了,做了两个方法,一个使用containsKey和一个for循环,并在1000000次迭代循环中使用它们(当时一个循环),for循环的循环更快一点 – Omu 2009-12-16 09:35:37