W tym programie nauczysz się sprawdzać, czy tablica zawiera daną wartość w Kotlinie.
Przykład 1: Sprawdź, czy Int Array zawiera daną wartość
fun main(args: Array) ( 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.") )
Po uruchomieniu programu wynik będzie następujący:
3 zostanie znalezione.
W powyższym programie mamy tablicę liczb całkowitych przechowywaną w zmiennej num. Podobnie liczba do znalezienia jest przechowywana w toFind.
Teraz używamy for-in
pętli do iteracji przez wszystkie elementy num i sprawdzamy indywidualnie, czy toFind jest równe n, czy nie.
Jeśli tak, ustawiliśmy znalezioną true
pętlę i przerwaliśmy ją. Jeśli nie, przechodzimy do następnej iteracji.
Przykład 2: Sprawdź, czy tablica zawiera daną wartość przy użyciu Stream
import java.util.stream.IntStream fun main(args: Array) ( 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.") )
Po uruchomieniu programu wynik będzie następujący:
7 nie został znaleziony.
W powyższym programie, zamiast używać pętli foreach, konwertujemy tablicę na an IntStream
i używamy jej anyMatch()
metody.
anyMatch()
przyjmuje predykat, wyrażenie lub funkcję, która zwraca wartość logiczną. W naszym przypadku predykat porównuje każdy element n w strumieniu z toFind i zwraca true
lub false
.
Jeśli którykolwiek z elementów n zwróci true
, found również zostanie ustawiony na true
.
Przykład 3: Sprawdź, czy tablica zawiera daną wartość dla typów innych niż pierwotne
import java.util.Arrays fun main(args: Array) ( 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.") )
Po uruchomieniu programu wynik będzie następujący:
Znaleziono cztery.
W powyższym programie, użyliśmy innego niż prymitywny typ danych String
i wykorzystywane Arrays
„s stream()
metody najpierw przekonwertować go do strumienia i anyMatch()
sprawdzić, czy tablica zawiera podaną wartość tofind.
Oto równoważny kod Java: program w języku Java do sprawdzania, czy tablica zawiera daną wartość.