在此程序中,您将学习在Kotlin中检查数组是否包含给定值。
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并退出循环。如果没有,我们移到下一个迭代。
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。
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程序。