arrays - Scala 二维数组按主列和辅助列排序

标签 arrays scala sorting

对于二维数组,例如

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/

相关文章:

PHP - 循环索引 JSON 数组

javascript - 如何检查嵌套数组中是否存在项目

PHP 到 Javascript、数组到数组、对象到对象

java - Ceylon 比 Java 或 Scala 有什么优势

python - 按字典的值排序,如果值相等则按键排序,然后输出列表

perl - 如何按哈希值之一对哈希引用数组进行排序?

ruby - 符号数组是否有文字符号?

java - 在 Java/Scala 项目中检查 null 与匹配

java - Apache Camel : set cookies for http4 client

python - 如何找到 JSON 列表中的哪一项对于 Python 中的给定属性具有最大值?