SortedMap

ふつう

scala> SortedMap(2 -> "a", 1 -> "b", 3 -> "c")
scala.collection.SortedMap[Int,java.lang.String] = Map(1 -> b, 2 -> a, 3 -> c)

java.util.Comparator的な

scala> val m = SortedMap.empty[Int, String](new Ordering[Int] {
 |    def compare(a : Int, b : Int) = b - a
 | })
m: scala.collection.immutable.SortedMap[Int,String] = Map()

scala> Map(2 -> "a", 1 -> "b", 3 -> "c").foldLeft(m) ((mm, v) => mm + (v._1 -> v._2))
scala.collection.immutable.SortedMap[Int, String] = Map(3 -> c, 2 -> a, 1 -> b)