【发布时间】:2020-04-02 11:56:05
【问题描述】:
我想对List[(String, Int)] 进行排序,以便首先按降序对 Int 进行排序,然后按字母顺序对字符串进行排序。通过我当前的实现,我按预期实现了对 Ints 的排序。但是字符串以相反的顺序排序。我想这是由于应用于整个元组的反向排序。
我应该如何更正此问题以使字符串按字母顺序排序?
val list: List[(String, Int)] = List(("x", 1), ("a", 1), ("c", 1), ("a", 2), ("b", 2), ("b", 1), ("a", 5), ("c", 5))
val sortedList = list.sortBy(x => (x._2, x._1))(implicitly[Ordering[(Int, String)]].reverse)
// Prints List((c,5), (a,5), (b,2), (a,2), (x,1), (c,1), (b,1), (a,1))
println(sortedList)
Expected: List((a,5), (c,5), (a,2), (b,2), (a,1), (b,1), (c,1), (x,1))
【问题讨论】:
标签: scala sorting collections