Questions tagged «hashset»

HashSet封装了允许比较集合中元素的操作。HashSet通常用于确定集合中的重叠元素和唯一元素。

9
为什么没有针对ConcurrentHashMap的ConcurrentHashSet
HashSet基于HashMap。 如果我们看一下HashSet<E>实现,则所有内容都在下管理HashMap<E,Object>。 <E>用作的键HashMap。 而且我们知道这HashMap不是线程安全的。这就是为什么我们使用ConcurrentHashMapJava。 基于此,我感到困惑的是,为什么我们没有应该基于的ConcurrentHashSet ConcurrentHashMap? 还有什么我想念的吗?我需要Set在多线程环境中使用。 另外,如果我想创建自己的作品,是否ConcurrentHashSet可以通过仅替换HashMapto ConcurrentHashMap并将其余内容保持不变来实现?

13
哈希集与树集
我一直都喜欢树木,它们的优美O(n*log(n))和整洁。但是,我认识的每个软件工程师都曾明确地问过我为什么要使用TreeSet。从CS的背景出发,我认为您使用的所有内容都不重要,并且我也不在乎哈希函数和存储桶(对于Java)。 在哪种情况下,我应该使用HashSetover TreeSet?
495 java  hashset  treeset 

4
定义:什么是HashSet?
HashSet .NET Framework 3.5中引入了C#HashSet数据结构。可以在HashSet MSDN页面上找到已实现成员的完整列表。 在哪里使用? 您为什么要使用它?
420 c#  hashset 




2
为什么HashSet <Point>比HashSet <string>慢得多?
我想存储一些像素位置而不允许重复,所以首先想到的是HashSet&lt;Point&gt;或类似的类。但是,与之相比,这似乎很慢HashSet&lt;string&gt;。 例如,此代码: HashSet&lt;Point&gt; points = new HashSet&lt;Point&gt;(); using (Bitmap img = new Bitmap(1000, 1000)) { for (int x = 0; x &lt; img.Width; x++) { for (int y = 0; y &lt; img.Height; y++) { points.Add(new Point(x, y)); } } } 大约需要22.5秒。 尽管以下代码(出于明显的原因,这不是一个很好的选择)仅花费1.6秒: HashSet&lt;string&gt; points = new HashSet&lt;string&gt;(); using (Bitmap …


10
HashSet与LinkedHashSet
它们之间有什么区别?我知道 LinkedHashSet是HashSet的有序版本,可在所有元素上维护双链列表。当您关心迭代顺序时,请使用此类而不是HashSet。当您遍历HashSet时,顺序是不可预测的,而LinkedHashSet可让您按插入元素的顺序来遍历元素。 但是在LinkedHashSet的源代码中,只有HashSet的调用构造函数。那么双向链接的列表和插入顺序在哪里?



4
HashSet如何比较元素是否相等?
我有一堂课是IComparable: public class a : IComparable { public int Id { get; set; } public string Name { get; set; } public a(int id) { this.Id = id; } public int CompareTo(object obj) { return this.Id.CompareTo(((a)obj).Id); } } 当我将此类的对象列表添加到哈希集时: a a1 = new a(1); a a2 = new a(2); HashSet&lt;a&gt; …
127 c#  hashset 



7
.NET中仅允许唯一项的集合?
C#中是否有一个集合,不允许您向其中添加重复项?例如,对于傻类 public class Customer { public string FirstName { get; set; } public string LastName { get; set; } public string Address { get; set; } public override int GetHashCode() { return (FirstName + LastName + Address).GetHashCode(); } public override bool Equals(object obj) { Customer C = obj as Customer; …
102 c#  set  hashset 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.