English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной учебник Java

Java управление потоком

Java массив

Java направленный объект (I)

Java направленный объект (II)

Java направленный объект (III)

Обработка исключений Java

Java список (List)

Java Queue (очередь)

Java Map коллекция

Java Set коллекция

Java ввод/вывод (I/O)

Java Reader/Writer

Java другие темы

Java-программа для проверки, содержит ли массив значение

Java полный список примеров

В этом примере вы узнаете, как в Java проверить, содержит ли массив значение, заданное пользователем

Пример 1: Проверка, содержит ли массив целых чисел значение, заданное пользователем

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 и выходим из цикла. Если нет, мы переходим к следующей итерации

Пример 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 + " найдено");
        else
            System.out.println(toFind + " не найдено");
    }
}

При выполнении этой программы вывод будет следующим:

7 Не найдено

В предыдущем примере мы не используем цикл foreach, а преобразуем массив в IntStream и используем его метод anyMatch()

Метод anyMatch() принимает предикат, выражение или функцию, возвращающую логическое значение. В нашем примере предикат сравнивает каждый элемент n в потоке с toFind и возвращает true или false

Если任何一个元素n возвращает true, то found также устанавливается в 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 + " найдено");
        else
            System.out.println(toFind + " не найдено");
    }
}

При выполнении этой программы вывод будет следующим:

Four найдено

В上面的 программе мы используем не исходный тип данных String и используем метод stream() класса Arrays, чтобы сначала преобразовать его в поток, и используем anyMatch(), чтобы проверить, содержит ли массив заданное значение toFind

Java полный список примеров