📅  最后修改于: 2023-12-03 15:05:03.324000             🧑  作者: Mango
exists()
是 Scala 中 Map 类的方法之一。该方法用于检查是否存在符合给定条件的键值对。
该方法的语法为:
def exists(p: ((A, B)) => Boolean): Boolean
其中,p
表示一个参数为 (A, B)
的函数,它会返回一个布尔值。
该方法会遍历 Map 中的每一个键值对,对于每一个键值对,都会调用函数 p
,如果 p
返回 true
,则表示存在符合条件的键值对,整个方法返回 true
。如果所有键值对都被遍历了一遍后,没有找到符合条件的键值对,则返回 false
。
下面是该方法的一个示例:
val studentScores = Map("Alice" -> 80, "Bob" -> 75, "Charlie" -> 90)
val hasGoodStudent = studentScores.exists(kv => kv._2 >= 90)
if (hasGoodStudent) {
println("There is at least one student with a score higher than or equal to 90.")
} else {
println("There is no student with a score higher than or equal to 90.")
}
在上面的示例中,我们定义了一个 Map studentScores
,它表示某个班级中各个学生的分数。然后我们使用 exists()
方法检查是否存在至少一个学生的分数大于或等于 90。由于 Charlie 的分数是 90,因此符合条件,最终输出结果为:
There is at least one student with a score higher than or equal to 90.
如果我们把代码修改为:
val hasGoodStudent = studentScores.exists(kv => kv._2 >= 95)
即判断是否存在至少一个学生的分数大于或等于 95,那么由于不存在这样的学生,输出结果为:
There is no student with a score higher than or equal to 95.
需要注意的是,exists()
方法会遍历整个 Map,如果 Map 中包含大量的键值对,遍历的时间会比较长。因此,在使用该方法时需要注意性能问题。