Java Scala Iterable[(String,Long)]到按值降序排序的SortedMap[String,Long]或TreeMap[String,Long]

Java Scala Iterable[(String,Long)]到按值降序排序的SortedMap[String,Long]或TreeMap[String,Long],java,scala,scala-collections,Java,Scala,Scala Collections,我不想将Iterable转换为List/Array等,因为它来自jdbc查询。您不能这样做SortedMap按键排序,而不是按值排序。 如果要按值排序,必须使用ListMap,并且不能避免转换为List: object Test extends App { val i: Iterable[(String, Long)] = List(("a", 1), ("b", 2)) val sortedMap: SortedMap[String, Long] = i.toList.sortBy(_.

我不想将Iterable转换为List/Array等,因为它来自jdbc查询。

您不能这样做<代码>SortedMap按键排序,而不是按值排序。 如果要按值排序,必须使用
ListMap
,并且不能避免转换为
List

object Test extends App {
 val i: Iterable[(String, Long)] = List(("a", 1), ("b", 2))
  val sortedMap: SortedMap[String, Long] = i.toList.sortBy(_._2)
}


转换为列表并没有太大的错误,因为您正在将整个内容加载到内存中。这也比一次只构建一个元素的树快。

另外。。为什么不想将其转换为列表?如果你想让它成为一张地图..简单地说是地图.toMap?我也真的很困惑。
 ListMap(i.toList.sortBy(-_._2):_*)