Tässä ohjelmassa opit tarkistamaan, sisältääkö matriisi tietyn arvon Kotlinissa.
Esimerkki 1: Tarkista, sisältääkö Int Array tietyn arvon
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.") )
Kun suoritat ohjelmaa, tulos on:
3 löytyy.
Yllä olevassa ohjelmassa meillä on joukko kokonaislukuja, jotka on tallennettu muuttujaan num. Samoin löydettävä numero tallennetaan ToFindiin.
Nyt käytämme for-in
silmukkaa iteroimaan kaikkien num-elementtien läpi ja tarkistamme erikseen, onko toFind yhtä suuri kuin n.
Jos kyllä, asetimme löydetyn true
ja katkaistiin silmukasta. Jos ei, siirrymme seuraavaan iteraatioon.
Esimerkki 2: Tarkista Streamin avulla, sisältääkö taulukko annettuja arvoja
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.") )
Kun suoritat ohjelmaa, tulos on:
7 ei löydy.
Edellä mainitussa ohjelmassa muunnetaan matriisi foreach-silmukan sijasta IntStream
ja käytämme sen anyMatch()
menetelmää.
anyMatch()
menetelmä ottaa predikaatin, lausekkeen tai funktion, joka palauttaa loogisen arvon. Meidän tapauksessamme predikaatti vertaa jokaista elementtiä n streamissa etsimiseen ja palauttaa true
tai false
.
Jos jokin elementistä n palaa true
, löydetty on myös asetettu true
.
Esimerkki 3: Tarkista, sisältääkö taulukko tietyn arvon ei-primitiivisille tyypeille
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.") )
Kun suoritat ohjelmaa, tulos on:
Neljä löytyy.
Edellä mainittuun ohjelmaan, olemme käyttäneet ei-primitiivinen tietotyyppi String
ja käytetään Arrays
n stream()
menetelmää ensin muuntaa sen virta ja anyMatch()
tarkistaa, onko matriisi sisältää tietyn arvon tofind.
Tässä on vastaava Java-koodi: Java-ohjelma tarkistaa, sisältääkö taulukko tietyn arvon.