docs: public static <T> List<T> collectFutures(Collection<Future<T>> futures) throws ExecutionException, InterruptedException
      {
          ArrayList<T> collected = new ArrayList<T>(futures.size());
  
          for (Future<T> future : futures)
                  collected.add(future.get());
  
          return collected;
      }