object Test extends App {
val i: Iterable[(String, Long)] = List(("a", 1), ("b", 2))
val sortedMap: SortedMap[String, Long] = i.toList.sortBy(_._2)
}
我不想将Iterable转换为List / Array等,因为它来自jdbc查询。
答案 0 :(得分:1)
您不能那样做。 SortedMap
按键而不是值排序。
如果要按值对它进行排序,则必须使用ListMap
,并且不可避免地要转换为List
:
ListMap(i.toList.sortBy(-_._2):_*)
转换为列表并没有太大的错误,因为无论如何您都将整个内容加载到内存中。这也比一次只建立一个元素的树要快。