Отслеживать результаты при выполнении потока Java? - PullRequest
0 голосов
/ 28 мая 2018

У меня есть базовый поток, в котором я перебираю объекты в потоке, и я хочу сохранить возвращаемое значение в списке, чтобы я мог использовать его после завершения потока.Каждый раз, когда я вызываю функцию, она возвращает целое число.

Это один из тех сценариев, где я должен использовать цикл for, или я все еще могу использовать поток?Каждый раз, когда вызывается doSomeFunctionThatReturnsAnInt, я хочу сохранить возвращаемое значение или добавить его в список.

myCoolCollectionObject
        .getCoolList()
        .stream()
        .forEach(this::doSomeFunctionThatReturnsAnInt);

1 Ответ

0 голосов
/ 28 мая 2018

Вы можете использовать Stream.map, чтобы отобразить элементы потока в int (с имеющейся у вас функцией) и собрать его в список, используя Stream.collect

List<Integer> result = myCoolCollectionObject
                         .getCoolList()
                         .stream()
                         .map(this::doSomeFunctionThatReturnsAnInt)
                         .collect(Collectors.toList());
...