按主列和辅助列排序Scala 2D数组

时间:2014-04-08 22:24:28

标签: arrays scala sorting

对于2D阵列,例如

val in = Array( Array(1, 45, 32), 
                Array(2, 88, 5), 
                Array(3, 72, 5) )

如何按第三列(主要选择)对其进行排序,如果按第二列(次要选择)进行排序,则结果如下所示,

val out = Array( Array(3, 72, 5),
                 Array(2, 88, 5),
                 Array(1, 45, 32) )

一般情况下,对于包含m列的二维矩阵,如何指定最多m个选项?

非常感谢。

1 个答案:

答案 0 :(得分:3)

sortBy提供所需的排序,在本例中为列。

scala> in.sortBy(x => (x(2), x(1)))
res4: Array[Array[Int]] = Array(
                            Array(3, 72, 5),
                            Array(2, 88, 5),
                            Array(1, 45, 32))

您可以传递sortByTuple列进行排序。因此,要按三列排序,您可以传入x => x(1), x(2), x(3)),依此类推。