私はこのようなことを達成しようとしています。これは意図を表現した構成例です。ループ内の完成可能な未来を呼び出し、すべての結果を組み合わせるにはどうすればいいですか?
私はすべての完成可能な未来を実行して、すべての結果を1つの結果にまとめて返したいと思います。したがって、以下の例では、コレクションallResultsは "1"、 "2"、 "3"、それぞれ3回の文字列を持つ必要があります。私は彼ら全員が連続していなくても並行して走って欲しいです。
これを達成するためにどのようなAPIを使用することができるかについては、非常に参考になります。それは、前のタスクの結果を待っている間、あなたも他のタスクを開始していない意味するだろうと
public class Main {
public static void main(String[] args) {
int x = 3;
List<String> allResuts;
for (int i = 0; i < x; i++) {
//call getCompletableFutureResult() and combine all the results
}
}
public static CompletableFuture<List<String>> getCompletableFutureResult() {
return CompletableFuture.supplyAsync(() -> getResult());
}
private static List<String> getResult() {
List<String> list = new ArrayList<>();
list.add("one");
list.add("two");
list.add("three");
return list;
}
}
_combine_を定義します。 –