将地图转换为已排序的列表

Mor*_*ive 3 scala list map

我有一张地图......

Map(a -> List(a, a), b -> List(b, b), l -> List(l, l))
Run Code Online (Sandbox Code Playgroud)

我可以转换为List

List((a,2), (l,2), (b,2))
Run Code Online (Sandbox Code Playgroud)

通过简单地做 myMap.toList();

但我想转换为排序列表 - 它排序在元组的第一个元素?

有小费吗?

谢谢

ghi*_*hik 11

快速解决方案:myMap.toList.sortBy(_._1).

这相当于myMap.toList.sortBy(tuple => tuple._1).在_1从元组中获取第一个元素.

sortBy 在一般采用的是排序的元素映射到某些值的函数和该值将被用于比较正在排序元素.

你也可以这样写得更详细: myMap.toList.sortBy {case (key, _) => key}