Как ещё можно решить задачу без anyMatch?

Если задача — проверить существование элемента по предикату, anyMatch можно заменить обычным циклом с ранним return. Для проверки конкретного значения в коллекции иногда достаточно contains.

Короткий ответ

Что ответить на собеседовании

Если задача — проверить существование элемента по предикату, anyMatch можно заменить обычным циклом с ранним return. Для проверки конкретного значения в коллекции иногда достаточно contains.

Подробный разбор

Ответ с пояснениями

Если задача — проверить существование элемента по предикату, anyMatch можно заменить обычным циклом с ранним return. Для проверки конкретного значения в коллекции иногда достаточно contains.

Общий вариант без stream:

static <T> boolean exists(Iterable<T> items, Predicate<? super T> predicate) {
    for (T item : items) {
        if (predicate.test(item)) return true;
    }
    return false;
}

Пустая коллекция даёт false, а найденное совпадение прекращает обход. Входные items и predicate здесь предполагаются non-null. Самого исходного условия нет, поэтому конкретный предикат подставляется по задаче. Подсчёт всех совпадений обычно лишний, если нужен только факт наличия.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее