MST

星途 面试题库

面试题:Java 中 CompletableFuture 多个任务 OR 组合关系 - 中等难度

假设你有两个 CompletableFuture,分别代表两个异步任务 task1 和 task2,如何使用 CompletableFuture 实现当 task1 或者 task2 其中一个完成时,获取完成任务的结果并将其转换为大写后返回一个新的 CompletableFuture?请写出代码示例。
29.3万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试
import java.util.concurrent.CompletableFuture;

public class CompletableFutureExample {
    public static void main(String[] args) {
        CompletableFuture<String> task1 = CompletableFuture.supplyAsync(() -> "task1 result");
        CompletableFuture<String> task2 = CompletableFuture.supplyAsync(() -> "task2 result");

        CompletableFuture<String> resultFuture = CompletableFuture.anyOf(task1, task2)
               .thenApplyAsync(String::toUpperCase);

        resultFuture.thenAccept(System.out::println).join();
    }
}