小编Daz*_*ler的帖子

使用scala sortWith函数对对象中的多个字段进行排序

我正在尝试对一组对象进行排序.当我尝试使用sortWith函数只对对象中的一个字段进行排序时,它的工作完全正常.当多个字段被排序时,它就会混乱.

例如.

scala> val res = branches.collect.toList
res: Array[(String, String, String)] = Array((109,A,Australia),     (101,A,Australia), (102,A,Myanmar), (103,B,Australia), (104,A,Europe), (105,B,US), (106,B,Myanmar), (107,C,Australia), (108,A,Canada))

scala> val a = res.sortWith((x,y) => (x._2 < y._2 && x._1 > y._1))
Run Code Online (Sandbox Code Playgroud)

基本上我试图排序第二元组,并根据结果我正在排序第一元组.我得到以下结果,但没有正确排序.我知道sortBy函数也可以实现同样的功能.但我想了解sortWith是如何工作的.

scala> val a = res.sortWith((x,y) => (x._2 < y._2 && x._1 > y._1))
a: Array[(String, String, String)] = Array((109,A,Australia), (107,C,Australia), (101,A,Australia), (102,A,Myanmar), (104,A,Europe), (108,A,Canada), (103,B,Australia), (105,B,US), (106,B,Myanmar))
Run Code Online (Sandbox Code Playgroud)

sorting scala

3
推荐指数
2
解决办法
2963
查看次数

标签 统计

scala ×1

sorting ×1