按值获取 Scala 映射中的最大键值对
Getting the maximum key value pair in a Scala map by value
我正在尝试从映射中提取最大值及其键。例如:
val map = Map('a' -> 100, 'b' -> 23, ... 'z' -> 56)
其中 100 是最大值,我将如何拉取 ('a',100)?我基本上想使用 Map.max 但按值而不是键搜索。
您可以将 maxBy
与从键值对到值的函数一起使用:
val map = Map('a' -> 100, 'b' -> 23, 'z' -> 56)
map.maxBy(_._2) // (a,100)
这是
的简称
map.maxBy { case (key, value) => value }
如果您要查找的最大值在地图中多次出现,请稍作修改:
// Find the entries with the max value in the map
val maxValue = map.maxBy(item => item._2)
// Filter the map and retain the entries with the max value
map.filter(item => item._2 == maxValue._2)
我正在尝试从映射中提取最大值及其键。例如:
val map = Map('a' -> 100, 'b' -> 23, ... 'z' -> 56)
其中 100 是最大值,我将如何拉取 ('a',100)?我基本上想使用 Map.max 但按值而不是键搜索。
您可以将 maxBy
与从键值对到值的函数一起使用:
val map = Map('a' -> 100, 'b' -> 23, 'z' -> 56)
map.maxBy(_._2) // (a,100)
这是
的简称map.maxBy { case (key, value) => value }
如果您要查找的最大值在地图中多次出现,请稍作修改:
// Find the entries with the max value in the map
val maxValue = map.maxBy(item => item._2)
// Filter the map and retain the entries with the max value
map.filter(item => item._2 == maxValue._2)