ScalaのSeqのソートについて説明していきます。
Seqのソートサンプル
def main(args: Array[String]) : Unit = {
// sorted - 昇順にソートする
val seq = Seq("c", "d", "a", "b")
println(seq.sorted) // List(a, b, c, d)
// reverse - 逆順に並び替える(降順ではないので注意)
println(seq.reverse) // List(b, a, d, c)
}
sortByを使用すればクラスを並び替えることもできます。
sortByサンプル
def main(args: Array[String]) : Unit = {
val seq = Seq(
new SampleClass(2, "B")
, new SampleClass(3, "C")
, new SampleClass(1, "A")
)
seq.sortBy(_.no).foreach(s => println(s.no, s.name))
// => (1,A), (2,B), (3,C)
seq.sortBy(_.name).foreach(s => println(s.no, s.name))
// => (1,A), (2,B), (3,C)
}
class SampleClass(val no : Int, val name: String)