提问者:小点点

Java8CompletableFuture.allOf(…)与集合或列表[重复]


Java 8有一个函数< code > CompletableFuture . allof(CompletableFuture

但是,我几乎总是不处理一系列可完成的未来,而是有一个列表

如果有一种巧妙的方法来获得CompletableFuture,那真的很好


共1个答案

匿名用户

不幸的是,据我所知,“可完成未来”不支持集合。

你可以做这样的事情来使代码更简洁一些,但它本质上做同样的事情。

public <T> CompletableFuture<List<T>> allOf(List<CompletableFuture<T>> futuresList) {
    CompletableFuture<Void> allFuturesResult =
    CompletableFuture.allOf(futuresList.toArray(new CompletableFuture[futuresList.size()]));
    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