Mic*_*ael 0 sorting scala sequence
假设我有一个Seq[Int].现在我想重新排序序列,将序列元素<= 0放在第一位,将元素> 0放在它们之后.如何简单有效地做到Scala?
最简单的:
xs.sortBy(_ > 0)
Run Code Online (Sandbox Code Playgroud)
效率稍高:
xs.groupBy(_ > 0).toSeq.sortBy(_._1).flatMap(_._2)
Run Code Online (Sandbox Code Playgroud)
效率更高:
xs.partition(_ <= 0) match { case(a,b) => a ++ b }
Run Code Online (Sandbox Code Playgroud)
更高效的是直接使用数组.从你开始Seq[Int],我假设你不是那么迫切的速度.
| 归档时间: |
|
| 查看次数: |
490 次 |
| 最近记录: |