Program Java na kontrolu, či pole obsahuje danú hodnotu

V tomto programe sa naučíte skontrolovať, či pole obsahuje danú hodnotu v jazyku Java.

Aby ste pochopili tento príklad, mali by ste mať znalosti nasledujúcich tém programovania v jazyku Java:

  • Java polia
  • Dátové typy Java (primitívne)

Príklad 1: Skontrolujte, či pole Int obsahuje danú hodnotu

 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ýkon

 3 sa nachádza.

Vo vyššie uvedenom programe máme pole celých čísel uložených v premennej num. Rovnako je vyhľadávané číslo uložené v priečinku toFind.

Teraz používame slučku for-each na iteráciu cez všetky prvky num a jednotlivo kontrolujeme, či sa toFind rovná n alebo nie.

Ak áno, nastavili sme nájdené truea vymaníme sa zo slučky. Ak nie, prejdeme na ďalšiu iteráciu.

Príklad 2: Skontrolujte, či pole obsahuje danú hodnotu pomocou Stream

 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ýkon

 7 sa nenašiel.

Vo vyššie uvedenom programe namiesto použitia cyklu for-each prevedieme pole na IntStreama použijeme jeho anyMatch()metódu.

anyMatch()metóda vezme predikát, výraz alebo funkciu, ktorá vráti boolovskú hodnotu. V našom prípade predikát porovnáva každý prvok n v prúde s toFind a vracia truealebo false.

Ak sa vráti niektorý z prvkov n true, je nájdený tiež nastavený na true.

Príklad 3: Skontrolujte, či pole obsahuje danú hodnotu pre neprimitívne typy

 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ýkon

 Štyri sa našli.

Vo vyššie uvedenom programe, ktoré sme použili non-primitívne dátový typ Stringa používa Arrays, s stream()metódu najprv previesť prúdu a anyMatch()skontrolovať, či pole obsahuje danú hodnotu tofind.

Zaujímavé články...