首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >*mutableSetOf()*返回Kotlin中的数据结构是什么?

*mutableSetOf()*返回Kotlin中的数据结构是什么?
EN

Stack Overflow用户
提问于 2020-06-01 13:45:30
回答 2查看 87关注 0票数 0

它是作为HashSet、链接HashSet还是二进制搜索树实现的?

我知道它是为了封装而隐藏的,但是我需要估计渐近运行时。

EN

Stack Overflow用户

发布于 2020-06-01 14:51:57

查看标准库的源代码可能很有趣,也很有启发意义--但mutableSetOf()今天返回的内容并不重要,因为在以后的Kotlin版本中,这种情况可能会发生变化。

重要的是,文献资料没有提到类,只提到MutableSet接口。这是JetBrains承诺的全部内容,所以这就是您可以安全地假设的所有内容。当不是合同的一部分时,您永远不应该依赖于特定的实现选择。

(他们唯一指定的是“返回的集合保留了元素的迭代顺序。”这样您就知道它不能返回一个HashSet,这是不可能的。但这仍然留下了几种当前的可能性,而且将来可能会有更多的可能性。甲骨文或JetBrains可能会想出一个新的实现,它具有更好的一般或最坏的性能,或者其他一些可取的特性。)

将结果传递给LinkedHashSet可能会在今天起作用,但在未来的Kotlin版本中,它可能会在ClassCastException. 中失败(更糟糕的是,它可能在大多数情况下都能工作,然后在您没有预料到的情况下抛出一个ClassCastException )。

因此,--如果您有特定的性能要求,那么最好显式地创建您想要的类型.

mutableSetOf()是用于当您没有特定的需求,只想要一些容易的东西,一般情况下可能会表现良好。

票数 3
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62133675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档