Bat*_*rry 45 .net c# generics collections
我的问题是我们什么HashSet<T>时候需要什么SortedSet<T>!所有HashSet的方法也可以在SortedSet中使用,而且SortedSet是有利的,因为它已经以排序的方式提供集合!即便如此,HashSet仍然存在.那有什么用呢?
Jac*_*cob 71
如果不需要排序,你不应该使用,它的排序,因为这意味着你的应用程序将被做得比它需要更多的工作一类.(换句话说,它会让你的应用更快).
Zar*_*dan 45
这是关于为工作选择合适的工具.取决于您将如何使用您的收藏.
这个页面有一个很好的表格,详细说明了各种集合类之间的差异.
以下是该表中有关您询问的集合的摘录:
Collection Ordering Contiguous Storage? Direct Access? Lookup Efficiency Manipulate Efficiency SortedSet Sorted No Via Key Key:O(log n) O(log n) HashSet Unordered Yes Via Key Key:O(1) O(1)
小智 18
二者HashSet<T>并SortedSet<T>正在执行interface ISet<T>这是一个数据结构保持独特的元件。
它们之间的主要区别在于它们用于存储数据的底层数据结构。
HashSet<T>使用哈希表,而SortedSet<T>使用红黑树,这是一棵平衡二叉树。
在HashSet<T>它使用一个哈希表做的基本操作(如添加,删除,搜索)速度比SortedSet<T>作为的复杂HashSet<T>度为O(1),这意味着它会做独立的输入数据的大小的基本操作在一定时间内,而复杂度SortedSet<T>是 log(N) 意思取决于输入的大小,它将对数进行基本操作。例如,如果输入数据的大小为 1,000,则程序将分 10 步执行基本操作,如果输入数据大小为 1,000,000,则程序将分 20 步执行基本操作。
结论:HashSet<T> 如果您不需要对元素进行排序,请使用,否则请使用SortedSet<T>. 这意味着使用HashSet<T>是可取的,除非您需要排序。
| 归档时间: |
|
| 查看次数: |
46484 次 |
| 最近记录: |