我想将项目保留在已排序以便快速访问的列表中。添加/检索性能很重要,但是我找不到有关SortedSet
:https://docs.scala-lang.org/overviews/collections/performance-characteristics.html
排序项目时,SortedSet
是用于快速添加/检索的最佳类吗?
答案 0 :(得分:0)
Scala 2.12中SortedSet
的默认实现使用TreeSet
:
scala> val s = scala.collection.SortedSet(3, 5, 1)
s: scala.collection.SortedSet[Int] = TreeSet(1, 3, 5)
内部使用Red-black tree实现TreeSet
。这意味着搜索和插入操作都将在O(log(n))
中。如果这是“快速的”,那么这实际上取决于您的应用程序的特性,而我对它的了解不足以提供更广泛的答案。
有关收集效果的更多详细信息,this blog post by Li Haoyi is a great place to start