#433 Повторное использование Stream в цикле

Компании:
Иннотех
Темы:
JavaStream API и LambdaКод ревью

Проанализировать код, ответить на вопрос: правильно ли реализована функция, с точки зрения логики работы кода Java.

Код работоспособен и компилируется.

import java.util.Arrays;
import java.util.function.Predicate;
import java.util.stream.Stream;

public class Main {
    private static String[] controlWords = new String[]{"человек", "зверь", "хорек"};

    public static void main(String[] args) {
        test("человек человеку зверь");
        test("человек не хорек но и не зверь");
        test("");
        test(null);
    }

    private static void test(String line) {
        String[] words = line.split(" ");

        Stream wordsStream = Arrays.asList(words).stream();
        for (int i = 0; i < controlWords.length; i++) {

            if (wordsStream.anyMatch(Predicate.isEqual(controlWords[i]))) {

                log("Найдено слово: " + controlWords[i]);

            }
        }
        log("Проверка завершена");
    }

    private static void log(String msg) {
        System.out.println(msg);
    }
}

Разбор вопроса

Ментор
Ответь как на реальном собеседовании. Я задам уточняющие вопросы, а затем сравню твой ответ с эталонным и покажу точность в %.
Войди, чтобы начать диалог Ментор ведёт диалог по текущему вопросу и учитывает предыдущие сообщения.
Войти