对于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
个选项?
非常感谢。
答案 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))
您可以传递sortBy
个Tuple
列进行排序。因此,要按三列排序,您可以传入x => x(1), x(2), x(3))
,依此类推。