Java CompletableFuture - kanuku/misc GitHub Wiki
List<CompletableFuture<Optional<Long>>> completableFutureList = loans.stream()
.map(loan -> CompletableFuture.supplyAsync(() -> processResponse(loan), executorService))
.collect(Collectors.toList());
List<Optional<Long>> result = completableFutureList.stream()
.map(CompletableFuture::join)
.collect(Collectors.toList());