code: public static <T, R extends Collection<T>> R select(
              Iterable<T> iterable,
              Predicate<? super T> predicate,
              R target,
              int batchSize,
              Executor executor,
              boolean allowReorderedResult)
      {
          FastListSelectProcedureCombiner<T> combiner = new FastListSelectProcedureCombiner<T>(iterable, target, 10, allowReorderedResult);
          FastListSelectProcedureFactory<T> procedureFactory = new FastListSelectProcedureFactory<T>(predicate, batchSize);
          ParallelIterate.forEach(
                  iterable,
                  procedureFactory,
                  combiner,
                  batchSize,
                  ParallelIterate.calculateTaskCount(iterable, batchSize),
                  executor);
          return (R) combiner.getResult();
      }
docs: Same effect as {@link Iterate#select(Iterable, Predicate)}, but executed in parallel batches,
  and writing output into the specified collection.
  
  @param target               Where to write the output.
  @param allowReorderedResult If the result can be in a different order.
  Allowing reordering may yield faster execution.
  @return The 'target' collection, with the selected elements added.