通过Python(this question for example)中的键或值对Map进行排序很容易。
我想在Scala中做同样的事情,假设我有一个字典:
val A= Map(0 -> 1.0, 3 -> 5.0,2->7.0)
我想通过键获得与排序的Map对应的元组列表:
val A_sorted= List((0,1.0),(2,7.0),(3,5.0))
谢谢!
答案 0 :(得分:6)
Map(0 -> 1.0, 3 -> 5.0,2->7.0).toList.sortBy(_._1)
res1: List[(Int, Double)] = List((0,1.0), (2,7.0), (3,5.0))
答案 1 :(得分:6)
足够
Arguable
在排序邮件时,首先排序第一个坐标;在平等时使用第二个坐标。
要注意,在Scala标签中,按字母大小写的大写字母表示类型(或类)。
答案 2 :(得分:2)
一种方法是使用:_ *语法输出Sequence的内容然后输出 将地图转换为sortedMap:
val a = Map(0 -> 1.0, 3 -> 5.0,2->7.0)
val sortedA = scala.collection.immutable.SortedMap(a.toList:_*)
如果需要,您可以将其转换为列表:
sortedA.toList