Scala:为什么没有 sortBy?

标签 scala

我想知道为什么 Scala Set 没有 sortBy 方法,而 SeqList 因为它也扩展了 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/

相关文章:

xml - 如何使用 Scala 计算 XML 文件中的元素

scala - 如何在 Http4s 中添加自定义错误响应?

scala - 如何配置 SBT 使用 Scala 2.8?

scala - 使用 var 过滤 RDD 的意外行为

scala - 在 Scala 中将 Option[T] 转换为 Option[U]

events - Scala Swing 事件中使用的反引号

java - 如何在 Gradle 中支持多种语言(Java 和 Scala)的多个项目?

Scala:编译器找不到 FromRepr、HasElem 或implicitConversions

scala - 在 Google App Engine 和 Play Framework 上将 HTTP 请求重定向到 HTTPS

scala - 测试中*的含义是什么?