Selles programmis õpite kontrollima, kas massiiv sisaldab Java-s antud väärtust.
Selle näite mõistmiseks peaksid teil olema teadmised järgmistest Java programmeerimise teemadest:
- Java massiivid
- Java andmetüübid (primitiivsed)
Näide 1: kontrollige, kas Int Array sisaldab antud väärtust
public class Contains ( public static void main(String() args) ( int() num = (1, 2, 3, 4, 5); int toFind = 3; boolean found = false; for (int n : num) ( if (n == toFind) ( found = true; break; ) ) if(found) System.out.println(toFind + " is found."); else System.out.println(toFind + " is not found."); ) )
Väljund
3 on leitud.
Ülaltoodud programmis on meil täisarvude massiiv, mis on salvestatud muutujasse num. Samamoodi on leiduv number salvestatud kaustaFind.
Nüüd kasutame iga tsükli jaoks kõigi num elementide itereerimiseks ja kontrollime eraldi, kas toFind on võrdne n või mitte.
Kui jah, siis true
otsustasime leida ja murda silmus. Kui ei, siis liigume järgmise iteratsiooni juurde.
Näide 2: kontrollige, kas massiiv sisaldab antud väärtust, kasutades voogu
import java.util.stream.IntStream; public class Contains ( public static void main(String() args) ( int() num = (1, 2, 3, 4, 5); int toFind = 7; boolean found = IntStream.of(num).anyMatch(n -> n == toFind); if(found) System.out.println(toFind + " is found."); else System.out.println(toFind + " is not found."); ) )
Väljund
7 ei leitud.
Ülaltoodud programmis teisendame massiivi igaks silmuseks asemel selle IntStream
ja kasutame selle anyMatch()
meetodit.
anyMatch()
meetod võtab predikaadi, avaldise või funktsiooni, mis tagastab tõeväärtuse. Meie puhul võrdleb predikaat voos olevaid elemente n funktsiooniga ToFind ja tagastab true
või false
.
Kui mõni element n naaseb true
, on leitud väärtuseks true
samuti leitud .
Näide 3: kontrollige, kas massiiv sisaldab mitteprimitiivsete tüüpide jaoks antud väärtust
import java.util.Arrays; public class Contains ( public static void main(String() args) ( String() strings = ("One", "Two", "Three", "Four", "Five"); String toFind = "Four"; boolean found = Arrays.stream(strings).anyMatch(t -> t.equals(toFind)); if(found) System.out.println(toFind + " is found."); else System.out.println(toFind + " is not found."); ) )
Väljund
Leiti neli.
Eespool programmi oleme kasutanud mitte primitiivne andmetüüp String
ja kasutatud Arrays
's stream()
meetod kõigepealt teisendada see oja ja anyMatch()
kontrollida, kas massiiv sisaldab antud raha toFind.