【发布时间】:2021-02-21 23:59:40
【问题描述】:
我试图在 Scala 中先按 Double 和 String 对 List[(String, Double)] 进行排序。这意味着我希望列表首先按 Double 的大小排序,然后按字母顺序排列。
例如,
val sortThisList = List[("C", 2.0), ("B", 1.0), ("A", 1.0), ("B", 2.0), ("A", 2.0), ("C", 1.0)]
sortThisList 排序后应如下所示:
List[("A", 2.0), ("B", 2.0), ("C", 2.0), ("A", 1.0), ("B", 1.0), ("C", 1.0)]
我尝试过使用 sortBy 函数:
val sortedList = sortThisList.sortBy(_._2).sortBy(_._1)
这是我尝试使用 sortBy 和 sortWith 编译的唯一版本。但是,它只会产生一个按字母顺序排序的 sortedList 版本,而不是先按 Double 的大小再按字母顺序排序。
【问题讨论】:
-
你试过什么?为什么它不起作用?你至少看过scaladoc吗?
-
我无法重现您的问题。当我尝试您的代码时,我得到“方法应用的类型参数数量错误:[A](elems: A*): List[A] in trait IterableFactory”。