Метод allMatch
Метод allMatch класса Stream проверяет,
соответствуют ли все элементы потока заданному условию.
Метод принимает в качестве параметра предикат (функцию,
возвращающую логическое значение) и возвращает true,
если каждый элемент потока удовлетворяет этому предикату.
Если поток пуст, метод возвращает true.
Если хотя бы один элемент не соответствует условию,
метод немедленно возвращает false и прекращает
дальнейшую обработку элементов.
Синтаксис
boolean allMatch(Predicate<? super T> predicate)
Пример
Давайте проверим, все ли числа в потоке
больше 0:
import java.util.List;
public class Main
{
public static void main(String[] args)
{
List<Integer> numbers = List.of(1, 2, 3, 4, 5);
boolean res = numbers.stream()
.allMatch(n -> n > 0);
System.out.println(res);
}
}
Результат выполнения кода:
true
Пример
Давайте проверим, все ли строки в потоке
начинаются с буквы "a":
import java.util.List;
public class Main
{
public static void main(String[] args)
{
List<String> strings = List.of("abcde", "abc", "abcd");
boolean res = strings.stream()
.allMatch(s -> s.startsWith("a"));
System.out.println(res);
}
}
Результат выполнения кода:
true
Пример
Давайте проверим случай, когда не все элементы
соответствуют условию. В этом примере поток
содержит число -1:
import java.util.List;
public class Main
{
public static void main(String[] args)
{
List<Integer> numbers = List.of(1, 2, -1, 4, 5);
boolean res = numbers.stream()
.allMatch(n -> n > 0);
System.out.println(res);
}
}
Результат выполнения кода:
false
Пример
Давайте проверим работу метода на пустом потоке:
import java.util.List;
public class Main
{
public static void main(String[] args)
{
List<Integer> numbers = List.of();
boolean res = numbers.stream()
.allMatch(n -> n > 0);
System.out.println(res);
}
}
Результат выполнения кода:
true