对于二维数组,例如
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
个选择?
非常感谢。
最佳答案
为 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))
等。
关于arrays - Scala 二维数组按主列和辅助列排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22949380/