elm*_*elm 2 arrays sorting scala matrix
给定任何2D阵列,例如,
val in = Array( Array(59, 45, 32),
Array(20, 88, 5),
Array(49, 72, 89))
Run Code Online (Sandbox Code Playgroud)
我希望按第三列排序,这样
val out = Array( Array(20, 88, 5),
Array(59, 45, 32),
Array(49, 72, 89))
Run Code Online (Sandbox Code Playgroud)
非常感谢.
这应该可以,但如果您的数组大小小于3,则会失败:
scala> in.sortBy(_(2))
Run Code Online (Sandbox Code Playgroud)
输出:
res0: Array[Array[Int]] = Array(Array(20, 88, 5), Array(59, 45, 32), Array(49, 72, 89))
Run Code Online (Sandbox Code Playgroud)
你也可以像这样做这个故障安全:
in.sortBy {
case arr @ Array(_) if arr.size >= 3 => arr(2)
case arr => Int.MaxValue // or any other value. Using MaxValue will make the invalid arrays be last ones
}
Run Code Online (Sandbox Code Playgroud)