哈希集 C# HashSet 数据结构是在 .NET Framework 3.5 中引入的。已实现成员的完整列表可在 HashSet MSDN 中找到。页面。
- 它用在什么地方?
- 为什么要使用它?
最佳答案
- >
HashSet
包含一组对象,但其方式允许您轻松快速地确定对象是否已在集合中。它通过在内部管理数组并使用根据对象的哈希码计算的索引来存储对象来实现。 Take a look here
HashSet
是一个包含唯一元素的无序集合。它具有标准的集合操作 Add、Remove、Contains,但由于它使用基于散列的实现,因此这些操作的复杂度为 O(1)。 (与列表相反,例如,包含和删除的复杂度为 O(n)。)HashSet
还提供标准集合操作,例如并集、交集 和对称差异。 Take a look here集合有不同的实现。有些通过散列元素使插入和查找操作超快。但是,这意味着添加元素的顺序丢失了。其他实现以较慢的运行时间为代价保留添加的顺序。
C# 中的 HashSet
类采用第一种方法,因此不保留元素的顺序。它比常规 List
快得多。一些基本基准测试表明 HashSet 在处理主要类型(int、double、bool 等)时速度相当快。使用类对象时要快得多。所以关键是 HashSet 很快。
HashSet
的唯一问题是不能通过索引访问。要访问元素,您可以使用枚举器或使用内置函数将 HashSet
转换为 List
并遍历它。 Take a look here
关于c# - 定义 : What is a HashSet?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4558754/