1
我有一個Map[Long, String]
,我想按鍵的順序迭代。我選擇了做,這是如下的方式:Scala TreeMap陌生;實現逆序排序
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)
我認爲視圖被應用於作爲目標和比較參數的鍵(即'( - 3L).compare(-1L) – 2009-12-01 21:06:59