Получи случайную криптовалюту за регистрацию!

Ответ к вопросу про allMatch/anyMatch: Малоизвестный факт, в | Java Interview Tasks

Ответ к вопросу про allMatch/anyMatch:

Малоизвестный факт, в документации написано следующее:

boolean allMatch(Predicate predicate);

return true if either all elements of the stream match the
provided predicate or the stream is empty, otherwise false
и
boolean anyMatch(Predicate predicate);

return true if any elements of the stream match the provided predicate, otherwise false

То есть allMatch() для пустого стрима вернет true, а anyMatch() вернет false.

Объяснить это можно так: для всех элементов пустого стрима любое условие выполнено.
В тоже время anyMatch вернет false, потому что нельзя найти элемент из коллекции, который удовлятворяет этому условию.

Такое поведение консистенто, например, для закона Де Моргана:
stream.allMatch(condition) равносильно !stream.anyMatch(!condition)