阻止插入重复元素的集合是否比非检查元素工作得慢(因为我猜他们会对每个元素进行某种检查以防止重复?)
或者在大多数情况下它是不正确或可以忍受的?
由于
答案 0 :(得分:8)
这取决于当然的实施,但大多数集合可能以某种形式进行优化以快速检查遏制。例如,HashSet<T>
基本上是一个值的哈希表 - 所以它只是一个哈希查找。
我不知道任何会检查每个现有元素是否相等的集合(除非你有一个可怕的哈希冲突情况等)。
答案 1 :(得分:1)
这完全取决于您正在使用的集合的实现 - 如果它基于List&lt; T&gt;将会有性能损失。
然而,如果HashSet&lt; T&gt;如果使用,性能几乎相同。
但是,表现不应该是这里的动机。如果您想允许重复的项目,请使用一个列表,否则使用不重复的项目。