В тази програма ще се научите да проверявате дали масив съдържа дадена стойност в Java.
За да разберете този пример, трябва да имате познанията по следните теми за програмиране на Java:
- Java масиви
- Типове данни на Java (примитивни)
Пример 1: Проверете дали Int Array съдържа дадена стойност
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."); ) )
Изход
3 е намерен.
В горната програма имаме масив от цели числа, съхранявани в променлива num. По същия начин номерът, който трябва да се намери, се съхранява в toFind.
Сега използваме цикъл за всеки, за да прегледаме всички елементи на num и да проверим индивидуално дали toFind е равно на n или не.
Ако отговорът е „да“, ние задаваме „намерено“ true
и да прекъсваме цикъла. Ако не, преминаваме към следващата итерация.
Пример 2: Проверете дали масив съдържа дадена стойност, като използвате 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."); ) )
Изход
7 не е намерен.
В горната програма, вместо да използваме за всеки цикъл, ние преобразуваме масива в an IntStream
и използваме неговия anyMatch()
метод.
anyMatch()
метод приема предикат, израз или функция, която връща булева стойност. В нашия случай предикатът сравнява всеки елемент n в потока с toFind и връща true
или false
.
Ако някой от елементите n се върне true
, намерен също е зададен true
.
Пример 3: Проверете дали масивът съдържа дадена стойност за непримитивни типове
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."); ) )
Изход
Четирима са намерени.
В по-горе програма, сме използвали, която не е примитивен тип данни String
и се използва Arrays
е stream()
метод за пръв път го превърнат в един поток и anyMatch()
да се провери, ако масивът съдържа даденото toFind стойност.