防止插入重复元素的集合工作速度是否会变慢?

发布于 2024-11-16 11:59:03 字数 102 浏览 0 评论 0原文

防止插入重复元素的集合是否工作速度较慢(比非检查集合),因为我猜它们对每个元素进行某种类型的检查以防止重复?

或者在大多数情况下它是不正确或不能容忍的?

谢谢

Do collections that prevent inserting the duplicate elements work slower(than the non-checking ones), as I guess they implement some kind of check on each element within against duplication?

Or it is not correct or tolerable in most of the cases?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

苍景流年 2024-11-23 11:59:03

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

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

It depends on the implementation of course, but most sets are likely to be optimised in some form to check for containment quickly. For example, HashSet<T> is basically a hash table of values - so it's just a hash lookup.

I don't know of any collections which would check every existing element for equality (unless you have a horrible hash collision situation etc).

小鸟爱天空丶 2024-11-23 11:59:03

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

然而,如果HashSet使用时,性能几乎相同。

尽管如此,性能不应该成为这里的动机。如果您想允许重复的项目,请使用允许重复的项目,否则使用不允许的列表。

That totally depends on the implementation of the collection you are using - if it is based on a List<T> there will be a performance penalty.

However, if a HashSet<T> is used, the performance will be almost the same.

Still, performance shouldn't be the motivation here. If you want to allow duplicate items, use a list that does, otherwise use one that doesn't.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文