微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Set 可以比 Hashtable 更快吗?

如何解决Set 可以比 Hashtable 更快吗?

集合通常被实现为哈希表,其中键是集合成员,值是一些常量(真或其他东西)。 由于哈希表是集合的泛化,因此可以更快地实现集合,但是有更快的实现吗?也许这种实现根本不是基于哈希表?或者可能是这样,但以其他方式进行了优化?

解决方法

没有容器的“速度”这样的东西。每个容器都支持一些操作,每个操作都有其复杂性和首选用例。有些容器适合连续读取,有些适合随机访问,有些适合插入,有些适合追加,等等。在开始询问哪种容器实现最适合您的用例之前,您需要描述这个用例。如果我们甚至不知道这个用例是什么,没有人会说哈希表是否最适合您的情况。

如果有一个容器在每种情况下都是最好的,我们都会使用它,而不会有其他容器。

话虽如此,我建议您不要尝试优化标准库容器。很有可能,它们足以满足您的需求,而无需额外干预。如果结果证明您的应用程序太慢,并且分析表明容器是确切的问题,则应该在最后完成优化。通常不是。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。