如何在Scala中按键对字典进行排序?

Alt*_*Alt 2 sorting scala hashmap

可以很容易地通过Python中的键或值对Map进行排序(例如,这个问题).

我想在Scala中做同样的事情,假设我有一个字典,如:

val A= Map(0 -> 1.0, 3 -> 5.0,2->7.0)
Run Code Online (Sandbox Code Playgroud)

我想通过键获得与排序的Map对应的元组列表:

val A_sorted= List((0,1.0),(2,7.0),(3,5.0))
Run Code Online (Sandbox Code Playgroud)

谢谢!

Tyt*_*yth 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))
Run Code Online (Sandbox Code Playgroud)


elm*_*elm 6

它就足够了

A.toList.sorted
Run Code Online (Sandbox Code Playgroud)

在排序duples时,首先排序第一个坐标; 在平等时使用第二个坐标.

要注意,在Scala标签中,首字母大小写为大写,表示类型(或类).