阻止插入重复元素的集合是否运行得更慢?

时间:2011-06-22 07:59:59

标签: .net collections set duplicates

阻止插入重复元素的集合是否比非检查元素工作得慢(因为我猜他们会对每个元素进行某种检查以防止重复?)

或者在大多数情况下它是不正确或可以忍受的?

由于

2 个答案:

答案 0 :(得分:8)

这取决于当然的实施,但大多数集合可能以某种形式进行优化以快速检查遏制。例如,HashSet<T>基本上是一个值的哈希表 - 所以它只是一个哈希查找。

我不知道任何会检查每个现有元素是否相等的集合(除非你有一个可怕的哈希冲突情况等)。

答案 1 :(得分:1)

这完全取决于您正在使用的集合的实现 - 如果它基于List&lt; T&gt;将会有性能损失。

然而,如果HashSet&lt; T&gt;如果使用,性能几乎相同。

但是,表现不应该是这里的动机。如果您想允许重复的项目,请使用一个列表,否则使用不重复的项目。