首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SortedSet<T> vs HashSet<T>

SortedSet<T> vs HashSet<T>
EN

Stack Overflow用户
提问于 2011-01-07 13:23:14
回答 2查看 54.2K关注 0票数 53

我的问题是,当我们有了SortedSet<T>时,对HashSet<T>的需求是什么!所有HashSet的方法在SortedSet中也是可用的,而且SortedSet是有利的,因为它已经以排序的方式提供了集合!即使到那时,HashSet仍然存在。那么它有什么用呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-07 13:26:50

如果你不需要排序,你就不应该使用进行排序的类,因为这意味着你的应用程序会做比它需要做的更多的工作。(换句话说,它会让你的应用程序更快)。

票数 80
EN

Stack Overflow用户

发布于 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>是更可取的。

票数 21
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4622736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档