从Scala映射获取具有最大值的所有键值对

时间:2018-04-12 08:56:54

标签: scala scala-collections

我在这里看到了类似的帖子here,它提供了一个在整个Map中具有最大值的键值对。

但是我想获得具有最大值的对列表(对于许多对,最大值是相同的)。

例如:Map(1 -> 7, 2 -> 1, 4 -> 7, 3 -> 2)

预期输出:List(1 -> 7, 4 -> 7)

此(Map(1 -> 7, 2 -> 1, 4 -> 7, 3 -> 2).maxBy(x => x._2))仅会出现第一次出现1 -> 7

2 个答案:

答案 0 :(得分:1)

使用map.filter(_._2 == map.values.max)可以解决问题。

答案 1 :(得分:1)

val maxValue = map.values.max
map.filter(_._2 == maxValue).toList