在此程序中,您將學(xué)習(xí)在Kotlin中檢查數(shù)組是否包含給定值。
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 找到。
在上面的程序中,我們有一個整數(shù)數(shù)組存儲在變量num中,同樣,要找到的數(shù)字也存儲在toFind中。
現(xiàn)在,我們使用for-in循環(huán)來遍歷num的所有元素,并逐個檢查是否要查找是否等于n。
如果是,我們將found設(shè)置為true并退出循環(huán)。如果沒有,我們移到下一個迭代。
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循環(huán),而是將數(shù)組轉(zhuǎn)換為IntStream并使用其anyMatch()方法。
返回一個boolean表達式或anyMatch()函數(shù)。在我們的實例中,謂詞將流中的每個元素n與toFind進行比較,并返回true或false。
如果任何元素n返回true,則found也被設(shè)置為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 找到.
在上面的程序中,我們使用了一個非原始數(shù)據(jù)類型String,并使用Arrays的stream()方法首先將其轉(zhuǎn)換為stream,anyMatch()檢查array是否包含給定的toFind值。
以下是等效的Java代碼:檢查數(shù)組是否包含給定值的Java程序。