首页 > C# >  C#定义:什么是 HashSet?

 C#定义:什么是 HashSet?

上一篇 下一篇

HashSet C# HashSet
数据结构是在 .NET Framework 3.5 中引入的。可以在 HashSet MSDN 页面上找到已实现成员的完整列表。

  1. 它在哪里使用?
  2. 为什么要使用它?

分割线

网友回答:

    1. A 包含一组对象,但以一种允许您轻松快速地确定对象是否已在集合中的方式。它通过在内部管理数组并使用从对象的哈希码计算的索引来存储对象来实现。看看这里HashSet
  1. HashSet是包含唯一元素的无序集合。它具有标准的集合操作 Add、Remove、Contains,但由于它使用基于哈希的实现,因此这些操作为 O(1)。(例如,与列表相反,列表是 O(n) 表示包含和删除。 还提供标准集运算,如集、交集对称差分。看看这里HashSet
  2. 集合有不同的实现。有些通过散列元素使插入和查找操作超快。但是,这意味着元素的添加顺序将丢失。其他实现以运行时间较慢为代价保留添加的顺序。

C# 中的类采用第一种方法,因此保留元素的顺序。它比普通的快得多.一些基本的基准测试表明,HashSet 在处理主要类型(int、double、bool 等)时要快得多。使用类对象时,它要快得多。所以关键是HashSet很快。HashSetList

唯一的问题是没有索引访问。若要访问元素,可以使用枚举器或使用内置函数将 转换为 并循环访问该元素。看看这里HashSetHashSetList

分割线

网友回答:

A 具有内部结构(哈希),可以在其中快速搜索和识别项目。缺点是遍历 (或按索引获取项目)相当慢。HashSetHashSet

那么,为什么有人希望能够知道集合中是否已经存在条目呢?

a 有用的一种情况是从可能存在重复项的列表中获取不同的值。将项目添加到 后,可以快速确定该项目是否存在(运算符)。HashSetHashSetContains

的其他优点是集合操作:、、、。HashSetIntersectWithIsSubsetOfIsSupersetOfOverlapsSymmetricExceptWithUnionWith

如果您熟悉对象约束语言,那么您将识别这些集合操作。您还将看到它离可执行 UML 的实现又近了一步。

分割线

网友回答:

简单地说,没有透露厨房的秘密:
一般来说,一套是一个不包含重复元素的集合,其元素没有特定的顺序。因此,A 类似于泛型,但针对快速查找(顾名思义,通过哈希表)进行了优化,但代价是失去顺序。
HashSet<T>List<T>

模板简介:该模板名称为【 C#定义:什么是 HashSet?】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【C#】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 274次
  • 使用软件 Sublime/Dreamweaver/HBuilder
  • 文件格式 编程语言
  • 文件大小 暂无信息
  • 上传时间 04-19
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
响应式 单页式简历模板 微信模板 微信文章 微信素材 微信图片 企业网站 自适应 微信公众平台 html5
您可能会喜欢的其他模板