import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
public class CompletableFutureExample {
public static void main(String[] args) throws ExecutionException, InterruptedException {
// 定义多个CompletableFuture任务
CompletableFuture<Integer> future1 = CompletableFuture.supplyAsync(() -> 1);
CompletableFuture<Integer> future2 = CompletableFuture.supplyAsync(() -> 2);
CompletableFuture<Integer> future3 = CompletableFuture.supplyAsync(() -> 3);
// 将所有CompletableFuture任务放入一个List
List<CompletableFuture<Integer>> futures = new ArrayList<>();
futures.add(future1);
futures.add(future2);
futures.add(future3);
// 使用CompletableFuture.allOf等待所有任务完成
CompletableFuture<Void> allFutures = CompletableFuture.allOf(futures.toArray(new CompletableFuture[0]));
// 获取所有任务的结果并放入一个List
List<Integer> results = new ArrayList<>();
allFutures.thenRun(() -> {
futures.forEach(future -> {
try {
results.add(future.get());
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
});
}).get();
System.out.println(results);
}
}