按Scala排序,首先按值,然后按键

时间:2015-04-23 10:30:29

标签: scala sorting

我有一对数组:

Array(("hello",200.00),("name",100.00),("a",200.00),("say",150.67))

我希望它排序为:

Array(("a",200.00),("hello",200.00),("say",150.67),("name",100.00))

按值先降序排序,然后按键递增

3 个答案:

答案 0 :(得分:2)

简单如

{{1}}

答案 1 :(得分:0)

尝试使用sortWith:

val a = Array(("hello",200.00),("name",100.00),("a",200.00),("say",150.67))
val sorted = a.sortWith((a, b) => a._2 > b._2 || (a._2 == b._2 && a._1 < b._1))

答案 2 :(得分:0)

您可以按值分组 - &gt;对它进行排序 - &gt;将每个分组映射到按密钥排序Seq - &gt;反转所有Seq

mariadb server

sortedByValueThenKey:Seq [(String,Double)] = ArrayBuffer((a,200.0),(hello,200.0),(例如,150.67),(名称,100.0))