public List<String> findPriceParallel(String product) {
   return shops
       .parallelStream()
       .map(shop -> shop.getPrice(product))
       .map(Quote::parse)
       .map(Discount::applyDiscount)
       .collect(Collectors.<String>toList());
 }
  public List<String> findPrice(String product) {
    List<CompletableFuture<String>> priceFutures =
        findPriceStream(product).collect(Collectors.<CompletableFuture<String>>toList());

    return priceFutures.stream().map(CompletableFuture::join).collect(Collectors.<String>toList());
  }