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