В этой программе вы научитесь проверять, содержит ли массив заданное значение в 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.
Теперь мы используем цикл for-each для перебора всех элементов 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 не найден.
В приведенной выше программе вместо использования цикла for-each мы преобразовываем массив в объект 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
«s stream()
метод сначала преобразовать его в поток и anyMatch()
проверить , если массив содержит заданное значение toFind.