登录
首页 >  Golang >  Go问答

删除字符串切片比使用带有虚拟值的字符串映射更快吗?考虑到元素数量小于 500

来源:stackoverflow

时间:2024-03-01 13:54:17 113浏览 收藏

golang学习网今天将给大家带来《删除字符串切片比使用带有虚拟值的字符串映射更快吗?考虑到元素数量小于 500》,感兴趣的朋友请继续看下去吧!以下内容将会涉及到等等知识点,如果你是正在学习Golang或者已经是大佬级别了,都非常欢迎也希望大家都能给我建议评论哈~希望能帮助到大家!

问题内容

我将从框架一一接收字符串,我需要将它们保存在某个容器中并稍后删除其中一些。现在我有两个选择:-

  1. 创建一个字符串切片,然后通过查找删除一些项目
  2. 使用 key=string 和 data=dummy 数据创建一个字符串映射,以便轻松删除

所以我个人更喜欢第二种选择。这是正确的选择吗?我们还有更好的办法吗?


正确答案


如果您需要按值访问和删除字符串,那么 map[string]struct{} 将为您提供更好的性能,前提是字符串数量足够大并且没有重复项。如果存在重复项,并且在删除时只需删除一个,则 map[string]int 就可以使用,其值是字符串出现的次数。如果字符串数量不大,那么 container/list 可能比切片效果更好,因为您可以在恒定时间内从中删除字符串。仅当尺寸较小时,切片才会优于其他切片,对于所有实际情况,删除都需要复制切片的一部分。

今天关于《删除字符串切片比使用带有虚拟值的字符串映射更快吗?考虑到元素数量小于 500》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>