我想知道为什么 Scala Set
没有 sortBy
方法,而 Seq
或 List
因为它也扩展了 Iterable
...
最佳答案
Set
是一种有点有序(这就是它可迭代的原因)但未排序的元素集合。
如果要对元素进行排序,则必须使用 SortedSet
实现(TreeSet
),您可以在其中提供创建新实例时的顺序
更新:有序和有序之间的区别不是很清楚:你可以说 List 是有序的但可能没有排序,而 Map 是无序和未排序的,但是 Map 的实现需要将其元素保存在内存中( RAM,磁盘,任何你想要的支持)并且内存总是有序的,所以它为任何集合提供了一些顺序(例如插入顺序或存储顺序)。
可以在 Scala API 中看到这种未定义的示例:定义 SortedSet 时,构造函数是:
new TreeSet()(implicit ordering: Ordering[A])
所以用了“ordering”这个词而不是“sorting”
关于Scala:为什么没有 sortBy?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41762012/