我目前在 scala 中有一个 Map,我需要检索与某个值匹配的键(或多个键!)。
我目前有一张学生和测试分数的地图,并且需要能够找到获得我输入的值的学生。
我的地图如下:
var students = Map(
"Neil" -> 87
"Buzz" -> 71
"Michael" -> 95
)
Run Code Online (Sandbox Code Playgroud)
例如,我如何在这张地图中搜索找到得分为 71 分的学生,然后归还钥匙?
提前致谢。
首先,您可能应该使用 aval而不是var,如下所示:val students = Map("Neil" -> 97, "Buzz" -> 71, "Michael" -> 95)
其次,您可能想要的方法称为find.
像这样的东西students.find(_._2 == 71).map(_._1)
这基本上是说,找到第一个值为(_._2 == 71)71 的 (key, value) 对,然后扔掉 value .map(_._1)。它将被包装在一个 Option 中,因为可能有 0 个匹配项。
也就是说,除非您有办法确保某个值永远不会出现多次,否则您可能会对 的结果感到更满意filter。