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

Kotlin 实例大全

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

示例1:检查Int数组是否包含给定值

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 找到。")
    else
        println("$toFind 未找到。")
}

运行该程序时,输出为:

3 找到。

在上面的程序中,我们有一个整数数组存储在变量num中,同样,要找到的数字也存储在toFind中。

现在,我们使用for-in循环来遍历num的所有元素,并逐个检查是否要查找是否等于n。

如果是,我们将found设置为true并退出循环。如果没有,我们移到下一个迭代。

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

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 找到.")
    else
        println("$toFind 未找到.")
}

运行该程序时,输出为:

7 未找到.

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

返回一个boolean表达式或anyMatch()函数。在我们的实例中,谓词将流中的每个元素n与toFind进行比较,并返回true或false。

如果任何元素n返回true,则found也被设置为true。

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

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 找到.")
    else
        println("$toFind 未找到.")
}

运行该程序时,输出为:

Four 找到.

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

以下是等效的Java代码:检查数组是否包含给定值的Java程序

Kotlin 实例大全