Java 8 Stream match
Данная статья написана командой Vertex Academy. Это одна из статей из нашего Учебника по Java 8.
В этой статье мы рассмотрим проверку данных в Stream-е по критерию в Java 8
1. Введение
Stream API - новый способ взаимодействия с данными, представляя их в виде конечного потока данных.
Для проверки данных по критерию в Stream-е можно использовать следующие методы : anyMatch(), allMatch(), noneMatch()
2. Stream anyMatch
Метод anyMatch() вернет true в том случае, если в Stream-e есть хоть один элемент, что удовлетворяет условию
1 2 3 4 5 6 7 8 |
public static void main(String[] args) { List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5); boolean match = numbers.stream() .anyMatch(number -> number % 2 == 0); // есть ли в Stream-e четное число System.out.println(match); //output true } |
В данном случае anyMatch() вернул true т.к. в Stream-e есть четное число
Изменим входящие данные
1 2 3 4 5 6 7 8 |
public static void main(String[] args) { List<Integer> numbers = Arrays.asList(1, 3, 5, 7); boolean match = numbers.stream() .anyMatch(number -> number % 2 == 0); // есть ли в Stream-e четное число System.out.println(match); //output false } |
В данном случае anyMatch() вернул false т.к. в Stream-e нет ни одного четного числа
3. Stream allMatch
Метод allMatch() вернет true в том случае, если в Stream-e все элементы удовлетворяют условию
1 2 3 4 5 6 7 8 |
public static void main(String[] args) { List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5); boolean match = numbers.stream() .allMatch(number -> number % 2 == 0); // все ли числа в Stream-e четные System.out.println(match); //output false } |
В данном случае allMatch() вернул false т.к. не все числа в Stream-e четные
Попробуем другое условие
1 2 3 4 5 6 7 8 |
public static void main(String[] args) { List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5); boolean match = numbers.stream() .allMatch(number -> number > 0); // все ли числа в Stream-e положительные System.out.println(match); //output true } |
В данном случае allMatch() вернул true т.к. все числа в Stream-e положительные
4. Stream noneMatch
Метод noneMatch() вернет true в том случае, если в Stream-e все элементы НЕ удовлетворяют условию
1 2 3 4 5 6 7 8 |
public static void main(String[] args) { List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5); boolean match = numbers.stream() .noneMatch(number -> number % 2 == 0); // все ли числа в Stream-e НЕ четные System.out.println(match); //output false } |
В данном случае noneMatch() вернул false т.к. в Stream-e есть четные числа
Изменим набор данных
1 2 3 4 5 6 7 8 |
public static void main(String[] args) { List<Integer> numbers = Arrays.asList(1, 3, 5, 7, 9); boolean match = numbers.stream() .noneMatch(number -> number % 2 == 0); // все ли числа в Stream-e НЕ четные System.out.println(match); //output true } |
Теперь noneMatch() вернул true т.к. все числа в Stream-e не четные.
Надеемся, что наша статья была Вам полезна. Также есть возможность записаться на наши курсы по Java в Киеве. Детальную информацию Вы можете найти у нас на сайте.