У меня есть Map[Long, String]
, который я хотел бы перебрать в порядке убывания ключей. Способ, который я выбрал, был следующим:
var m: SortedMap[Long, String] = TreeMap.empty( (l: Long) => -l)
m ++= Map(2L -> "Hello", 1L -> "World", 3L -> "Chris")
println(m) //Map(3 -> Chris, 1 -> World, 2 -> Hello)
Я действительно не уверен, что понимаю, почему это не сработало, и могу только предположить, что совершил какую-то глупую ошибку. Конечно, следующие работы:
var m: SortedMap[Long, String] = TreeMap.empty( (l: Long) => new Ordered[Long] {
def compare(a: Long) = -l.compare(a)
})
m ++= Map(2L -> "Hello", 1L -> "World", 3L -> "Chris")
println(m) //Map(3 -> Chris, 2 -> Hello, 1 -> World)