Šajā programmā jūs iemācīsities pārbaudīt, vai masīvs satur noteiktu vērtību Kotlinā.
1. piemērs: pārbaudiet, vai Int Array satur noteiktu vērtību
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.") )
Palaidot programmu, izeja būs:
3 ir atrasts.
Iepriekš minētajā programmā mums ir veselu skaitļu masīvs, kas saglabāts mainīgajā num. Tāpat atrodamais numurs tiek saglabāts mapē ToFind.
Tagad mēs izmantojam for-in
cilpu, lai atkārtotu visus num elementus un pārbaudītu atsevišķi, vai toFind ir vienāds ar n vai nē.
Ja jā, mēs iestatījām true
un pārtraucām darbību. Ja nē, mēs pārietam uz nākamo atkārtojumu.
2. piemērs: Pārbaudiet, vai masīvā ir dota vērtība, izmantojot straumi
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.") )
Palaidot programmu, izeja būs:
7 nav atrasts.
Iepriekš minētajā programmā tā vietā, lai izmantotu foreach cilpu, mēs pārveidojam masīvu uz IntStream
un izmantojam tā anyMatch()
metodi.
anyMatch()
metode prasa predikātu, izteiksmi vai funkciju, kas atgriež Būla vērtību. Mūsu gadījumā predikāts katru elementu n straumē salīdzina ar toFind un atgriež true
vai false
.
Ja atgriežas kāds no elementiem n true
, tiek iestatīts true
arī atrasts .
3. piemērs: pārbaudiet, vai masīvā ir noteikta vērtība neprimitīviem tipiem
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.") )
Palaidot programmu, izeja būs:
Atrasti četri.
Iepriekš programmai, esam izmanto bez primitīvas datu tipu String
un lieto Arrays
's stream()
metodi, lai vispirms konvertēt to uz plūsmā, un anyMatch()
, lai pārbaudītu, vai masīvs satur doto vērtību toFind.
Šeit ir ekvivalents Java kods: Java programma, lai pārbaudītu, vai masīvā ir dota vērtība.