Ответ
Метод allMatch(Predicate<? super T> predicate) — это терминальная операция в Java Stream API, которая проверяет, удовлетворяют ли все элементы потока заданному условию (предикату).
- Возвращает
true, если все элементы потока соответствуют предикату или если поток пуст (вакуумная истина). - Возвращает
false, если хотя бы один элемент не соответствует условию.
Пример: Проверка, что все числа в списке четные.
List<Integer> numbers = List.of(2, 4, 6, 8);
boolean allEven = numbers.stream()
.allMatch(n -> n % 2 == 0); // Возвращает true
System.out.println(allEven); // true
Пример с пустым потоком:
List<String> emptyList = List.of();
boolean result = emptyList.stream()
.allMatch(s -> s.length() > 5); // Возвращает true
System.out.println(result); // true
Практическое применение:
- Валидация данных: Убедиться, что все объекты в коллекции имеют корректное состояние.
List<User> users = getUserList(); boolean allActive = users.stream() .allMatch(User::isActive); // Все пользователи активны? - Проверка ограничений: Все ли значения находятся в допустимом диапазоне.
Важно: allMatch() — это короткозамыкающая операция. Обработка потока прекращается, как только встречается элемент, не удовлетворяющий условию.