U ovom programu naučit ćete provjeriti sadrži li niz zadanu vrijednost u Kotlinu.
Primjer 1: Provjerite sadrži li Int Array zadanu vrijednost
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.") )
Kada pokrenete program, izlaz će biti:
3 je pronađen.
U gornjem programu imamo niz cijelih brojeva pohranjenih u varijablu num. Isto tako, broj koji se nalazi pohranjen je u toFind.
Sada koristimo for-in
petlju za itiranje kroz sve elemente num i provjeru pojedinačno je li toFind jednako n ili nije.
Ako je odgovor da, postavili smo pronađeno true
i prekid iz petlje. Ako ne, prelazimo na sljedeću iteraciju.
Primjer 2: Provjerite sadrži li niz zadanu vrijednost pomoću streama
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.") )
Kada pokrenete program, izlaz će biti:
7 nije pronađen.
U gornjem programu, umjesto da koristimo foreach petlju, mi pretvaramo niz u an IntStream
i koristimo njegovu anyMatch()
metodu.
anyMatch()
metoda uzima predikat, izraz ili funkciju koja vraća logičku vrijednost. U našem slučaju, predikat uspoređuje svaki element n u toku s toFind i vraća true
ili false
.
Ako se vrati bilo koji od elemenata n true
, postavljeno je i pronađeno true
.
Primjer 3: Provjerite sadrži li niz zadanu vrijednost za neprimitivne tipove
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.") )
Kada pokrenete program, izlaz će biti:
Četiri su pronađena.
U gore navedenom programu, mi smo koristili ne-primitivni tip podataka String
i koristi Arrays
„s stream()
metodu za prvi ga pretvoriti u potok i anyMatch()
provjeriti da li polje sadrži zadanu vrijednost tofind.
Evo ekvivalentnog Java koda: Java program za provjeru sadrži li niz zadanu vrijednost.