Program Java ke kontrole, zda pole obsahuje danou hodnotu

V tomto programu se naučíte zkontrolovat, zda pole obsahuje danou hodnotu v Javě.

Abychom porozuměli tomuto příkladu, měli byste znát následující programovací témata Java:

  • Java pole
  • Datové typy Java (primitivní)

Příklad 1: Zkontrolujte, zda Int Array obsahuje danou 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ýstup

 3 je nalezen.

Ve výše uvedeném programu máme pole celých čísel uložených v proměnné num. Podobně je číslo, které má být nalezeno, uloženo v toFind.

Nyní používáme smyčku for-each k iteraci všemi prvky num a jednotlivě kontrolujeme, zda se toFind rovná n nebo ne.

Pokud ano, nastavili jsme truesmyčku found to and break from the loop. Pokud ne, přejdeme na další iteraci.

Příklad 2: Zkontrolujte, zda pole obsahuje danou hodnotu pomocí 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ýstup

 7 nebyl nalezen.

Ve výše uvedeném programu namísto použití smyčky pro každou převádíme pole na IntStreama používáme jeho anyMatch()metodu.

anyMatch()metoda přebírá predikát, výraz nebo funkci, která vrací logickou hodnotu. V našem případě predikát porovnává každý prvek n v proudu s toFind a vrací truenebo false.

Pokud se některý z prvků n vrátí true, nalezený je nastaven truetaké.

Příklad 3: Zkontrolujte, zda pole obsahuje danou hodnotu pro neprimitivní 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ýstup

 Čtyři se nacházejí.

Ve výše uvedeném programu, které jsme použili non-primitivní datový typ Stringa používá Arrays‚s stream()metodu nejprve převést proudu a anyMatch()zkontrolovat, zda pole obsahuje danou hodnotu tofind.

Zajímavé články...