在 Scala 中,可以使用 sortBy 函数来对 Map 中的值进行排序。该函数接受一个函数作为参数,该函数将为每个 Map 中的键值对计算一个排序值,然后根据这些值对 Map 进行排序。

以下是一个示例,其中使用 sortBy 函数对 Map 中的值进行排序:

val unsortedMap = Map("a" -> 5, "b" -> 3, "c" -> 8, "d" -> 1)

val sortedMap = unsortedMap.toSeq.sortBy(_._2).toMap

println(sortedMap)

在上面的示例中,首先将 Map 转换为一个 Seq,然后使用 sortBy 函数根据 Map 中的值进行排序。最后,将排序后的 Seq 转换回 Map。输出结果如下:

Map(d -> 1, b -> 3, a -> 5, c -> 8)

在这个排序后的 Map 中,键值对按值的升序排序。如果需要降序排序,可以在 sortBy 函数中使用 - 运算符反转排序顺序:

val sortedMap = unsortedMap.toSeq.sortBy(-_._2).toMap

在上面的示例中,使用 - 运算符反转了值的排序顺序,因此键值对按值的降序排序。输出结果如下:

Map(c -> 8, a -> 5, b -> 3, d -> 1)

这样就可以按值对 Map 进行排序了。

scala map 按值排序

原文地址: https://www.cveoy.top/t/topic/ukV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录