Ответ 1
К сожалению, насколько мне известно, готовые фьючерсы не поддерживают коллекции.
Вы можете сделать что-то вроде этого, чтобы сделать код немного более чистым, но он по сути делает то же самое:
public <T> CompletableFuture<List<T>> allOf(List<CompletableFuture<T>> futuresList) {
CompletableFuture<Void> allFuturesResult =
CompletableFuture.allOf(futuresList.toArray());
return allFuturesResult.thenApply(v ->
futuresList.stream().
map(future -> future.join()).
collect(Collectors.<T>toList())
);
}
Нашел это очень информативное: http://www.nurkiewicz.com/2013/05/java-8-completablefuture-in-action.html