# Kotlin 程序：检查数组是否包含给定值

> 原文： [https://www.programiz.com/kotlin-programming/examples/array-contains-value](https://www.programiz.com/kotlin-programming/examples/array-contains-value)

#### 在此程序中，您将学习如何在 Kotlin 中检查数组是否包含给定值。

## 示例 1：检查`Int`数组是否包含给定值

```kt
fun main(args: Array<String>) {

    val num = intArrayOf(1, 2, 3, 4, 5)
    val toFind = 3
    var found = false

    for (n in num) {
        if (n == toFind) {
            found = true
            break
        }
    }

    if (found)
        println("$toFind is found.")
    else
        println("$toFind is not found.")
}
```

运行该程序时，输出为：

```kt
3 is found.
```

在上面的程序中，我们有一个整数数组，存储在变量`num`中。 同样，要找到的编号存储在`toFind`。

现在，我们使用`for-in`循环遍历`num`的所有元素，并分别检查`toFind`是否等于`n`。

如果是，我们将`found`设置为`true`，然后退出循环。 如果不是，我们转到下一个迭代。

* * *

## 示例 2：使用`Stream`检查数组是否包含给定值

```kt
import java.util.stream.IntStream

fun main(args: Array<String>) {

    val num = intArrayOf(1, 2, 3, 4, 5)
    val toFind = 7

    val found = IntStream.of(*num).anyMatch { n -> n == toFind }

    if (found)
        println("$toFind is found.")
    else
        println("$toFind is not found.")
}
```

运行该程序时，输出为：

```kt
7 is not found.
```

在上面的程序中，我们没有使用`foreach`循环，而是将数组转换为`IntStream`并使用其`anyMatch()`方法。

`anyMatch()`方法采用返回布尔值的谓词，表达式或函数。 在我们的情况下，谓词将流中的每个元素`n`与`toFind`进行比较，然后返回`true`或`false`。

如果元素`n`中的任何一个返回`true`，则将`found`设置为`true`。

* * *

## 示例 3：检查数组是否包含非原始类型的给定值

```kt
import java.util.Arrays

fun main(args: Array<String>) {

    val strings = arrayOf("One", "Two", "Three", "Four", "Five")
    val toFind = "Four"

    val found = Arrays.stream(strings).anyMatch { t -> t == toFind }

    if (found)
        println("$toFind is found.")
    else
        println("$toFind is not found.")
}
```

运行该程序时，输出为：

```kt
Four is found.
```

在上面的程序中，我们使用了非原始数据类型`String`，并使用`Arrays`的`stream()`方法首先将其转换为流，然后使用`anyMatch()`检查数组是否包含给定值`toFind`。

以下是等效的 Java 代码：[检查数组是否包含给定值的 Java 程序](/java-programming/examples/array-contains-value "Java program to check if array contains a given value")。