📜  Scala Map exists() 方法与示例(1)

📅  最后修改于: 2023-12-03 15:05:03.324000             🧑  作者: Mango

Scala Map exists() 方法与示例

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 中包含大量的键值对,遍历的时间会比较长。因此,在使用该方法时需要注意性能问题。