English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этом примере вы узнаете, как в Java проверить, содержит ли массив значение, заданное пользователем
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 + " найдено"); else System.out.println(toFind + " не найдено"); } }
При выполнении этой программы вывод будет следующим:
3 Найдено
В предыдущем примере у нас есть целочисленный массив, хранящийся в переменной num. Также число, которое нужно найти, хранится в toFind
Теперь мы используем цикл foreach для遍ения всех элементов массива num и проверяем, равен ли toFind n
Если да, мы устанавливаем find в true и выходим из цикла. Если нет, мы переходим к следующей итерации
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 + " найдено"); else System.out.println(toFind + " не найдено"); } }
При выполнении этой программы вывод будет следующим:
7 Не найдено
В предыдущем примере мы не используем цикл foreach, а преобразуем массив в IntStream и используем его метод anyMatch()
Метод anyMatch() принимает предикат, выражение или функцию, возвращающую логическое значение. В нашем примере предикат сравнивает каждый элемент n в потоке с toFind и возвращает true или false
Если任何一个元素n возвращает true, то found также устанавливается в true
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 + " найдено"); else System.out.println(toFind + " не найдено"); } }
При выполнении этой программы вывод будет следующим:
Four найдено
В上面的 программе мы используем не исходный тип данных String и используем метод stream() класса Arrays, чтобы сначала преобразовать его в поток, и используем anyMatch(), чтобы проверить, содержит ли массив заданное значение toFind