我的问题是,当我们有了SortedSet<T>时,对HashSet<T>的需求是什么!所有HashSet的方法在SortedSet中也是可用的,而且SortedSet是有利的,因为它已经以排序的方式提供了集合!即使到那时,HashSet仍然存在。那么它有什么用呢?
发布于 2011-01-07 13:26:50
如果你不需要排序,你就不应该使用进行排序的类,因为这意味着你的应用程序会做比它需要做的更多的工作。(换句话说,它会让你的应用程序更快)。
发布于 2018-09-12 15:02:59
HashSet<T>和SortedSet<T>都在实现interface ISet,这是一种包含唯一元素的数据结构。
它们之间的主要区别在于它们用来存储数据的底层数据结构。HashSet<T>使用哈希表,而SortedSet<T>使用红黑树,这是一种平衡二叉树。
使用哈希表的HashSet<T>执行基本操作(即添加、删除、搜索)的速度比SortedSet<T>快,因为HashSet<T>的复杂度为O(1),这意味着它将在一段恒定的时间内执行与输入数据大小无关的基本操作,而SortedSet<T>的复杂度是log(N),这意味着它将以对数的方式执行基本操作。例如,如果输入数据的大小是1000,那么程序将在10个步骤中执行基本操作,如果是1,000,000,则程序将在20个步骤中执行基本操作。
结论:如果不需要对元素进行排序,请使用HashSet<T> ,否则使用SortedSet<T>。这意味着除非需要排序,否则使用HashSet<T>是更可取的。
https://stackoverflow.com/questions/4622736
复制相似问题