W tym programie nauczysz się sprawdzać, czy tablica zawiera daną wartość w Javie.
Aby zrozumieć ten przykład, należy znać następujące tematy dotyczące programowania w języku Java:
- Tablice Java
- Typy danych Java (prymitywne)
Przykład 1: Sprawdź, czy Int Array zawiera daną wartość
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."); ) )
Wynik
3 zostanie znalezione.
W powyższym programie mamy tablicę liczb całkowitych przechowywaną w zmiennej num. Podobnie liczba do znalezienia jest przechowywana w toFind.
Teraz używamy pętli for-each do iteracji przez wszystkie elementy num i sprawdzamy indywidualnie, czy toFind jest równe n, czy nie.
Jeśli tak, ustawiliśmy znalezioną true
pętlę i przerwaliśmy ją. Jeśli nie, przechodzimy do następnej iteracji.
Przykład 2: Sprawdź, czy tablica zawiera daną wartość przy użyciu 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."); ) )
Wynik
7 nie został znaleziony.
W powyższym programie zamiast używać pętli for-each, konwertujemy tablicę na an IntStream
i używamy jej anyMatch()
metody.
anyMatch()
przyjmuje predykat, wyrażenie lub funkcję zwracającą wartość logiczną. W naszym przypadku predykat porównuje każdy element n w strumieniu z toFind i zwraca true
lub false
.
Jeśli którykolwiek z elementów n zwróci true
, found również zostanie ustawiony na true
.
Przykład 3: Sprawdź, czy tablica zawiera daną wartość dla typów innych niż pierwotne
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."); ) )
Wynik
Znaleziono cztery.
W powyższym programie, użyliśmy innego niż prymitywny typ danych String
i wykorzystywane Arrays
„s stream()
metody najpierw przekonwertować go do strumienia i anyMatch()
sprawdzić, czy tablica zawiera podaną wartość tofind.