Поток Java: итерация двух коллекций, цепочка ответов - PullRequest
0 голосов
/ 03 октября 2019

У меня есть следующий блок, processRule () удаляет записи из списка diff.

  public List<Difference> process(List<Rule> rules, List<Difference> differences) {
    for (Rule rule : rules) {
        differences = processRule(rule, differences);
    }
    return differences;
}

как это можно сделать с помощью потокового API? я не могу просто использовать flatMap, потому что мне нужно, чтобы каждый новый вызов processRule () уменьшал differences в качестве аргумента.

1 Ответ

0 голосов
/ 03 октября 2019

Может быть что-то вроде этого, используя Stream Reduce. Примечание: не проверено, отправка с моего мобильного телефона

     return rules
     .stream()
     .reduce(differences, (rule1, rule2) -> 
                             processRule(rule2, 
                             processRule(rule1, differences))
} );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...