Class FJIterate
- java.lang.Object
-
- org.eclipse.collections.impl.forkjoin.FJIterate
-
public final class FJIterate extends Object
The FJIterate class contains several parallel algorithms that work with Collections and make use of Java's fork-join framework. All the higher level parallel algorithms depend on the basic parallel algorithm namedforEach. The forEach algorithm employs a batching fork and join approach.All Collections that are not either a
RandomAccessorListare first converted to a Java array usingIterate.toArray(Iterable), and then run with one of theFJIterate.forEachmethods.- See Also:
ParallelIterate
-
-
Field Summary
Fields Modifier and Type Field Description static intDEFAULT_MIN_FORK_SIZE
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <T,K,V>
MutableMap<K,V>aggregateBy(Iterable<T> iterable, Function<? super T,? extends K> groupBy, Function0<? extends V> zeroValueFactory, Function2<? super V,? super T,? extends V> nonMutatingAggregator)static <T,K,V>
MutableMap<K,V>aggregateBy(Iterable<T> iterable, Function<? super T,? extends K> groupBy, Function0<? extends V> zeroValueFactory, Function2<? super V,? super T,? extends V> nonMutatingAggregator, int batchSize)static <T,K,V>
MutableMap<K,V>aggregateBy(Iterable<T> iterable, Function<? super T,? extends K> groupBy, Function0<? extends V> zeroValueFactory, Function2<? super V,? super T,? extends V> nonMutatingAggregator, int batchSize, ForkJoinPool executor)static <T,K,V,R extends MutableMapIterable<K,V>>
RaggregateBy(Iterable<T> iterable, Function<? super T,? extends K> groupBy, Function0<? extends V> zeroValueFactory, Function2<? super V,? super T,? extends V> nonMutatingAggregator, R mutableMap)static <T,K,V,R extends MutableMapIterable<K,V>>
RaggregateBy(Iterable<T> iterable, Function<? super T,? extends K> groupBy, Function0<? extends V> zeroValueFactory, Function2<? super V,? super T,? extends V> nonMutatingAggregator, R mutableMap, int batchSize)static <T,K,V,R extends MutableMapIterable<K,V>>
RaggregateBy(Iterable<T> iterable, Function<? super T,? extends K> groupBy, Function0<? extends V> zeroValueFactory, Function2<? super V,? super T,? extends V> nonMutatingAggregator, R mutableMap, int batchSize, ForkJoinPool executor)static <T,K,V>
MutableMap<K,V>aggregateInPlaceBy(Iterable<T> iterable, Function<? super T,? extends K> groupBy, Function0<? extends V> zeroValueFactory, Procedure2<? super V,? super T> mutatingAggregator)static <T,K,V>
MutableMap<K,V>aggregateInPlaceBy(Iterable<T> iterable, Function<? super T,? extends K> groupBy, Function0<? extends V> zeroValueFactory, Procedure2<? super V,? super T> mutatingAggregator, int batchSize)static <T,K,V>
MutableMap<K,V>aggregateInPlaceBy(Iterable<T> iterable, Function<? super T,? extends K> groupBy, Function0<? extends V> zeroValueFactory, Procedure2<? super V,? super T> mutatingAggregator, int batchSize, ForkJoinPool executor)static <T,K,V,R extends MutableMapIterable<K,V>>
RaggregateInPlaceBy(Iterable<T> iterable, Function<? super T,? extends K> groupBy, Function0<? extends V> zeroValueFactory, Procedure2<? super V,? super T> mutatingAggregator, R mutableMap)static <T,K,V,R extends MutableMapIterable<K,V>>
RaggregateInPlaceBy(Iterable<T> iterable, Function<? super T,? extends K> groupBy, Function0<? extends V> zeroValueFactory, Procedure2<? super V,? super T> mutatingAggregator, R mutableMap, int batchSize)static <T,K,V,R extends MutableMapIterable<K,V>>
RaggregateInPlaceBy(Iterable<T> iterable, Function<? super T,? extends K> groupBy, Function0<? extends V> zeroValueFactory, Procedure2<? super V,? super T> mutatingAggregator, R mutableMap, int batchSize, ForkJoinPool executor)static <T,V>
Collection<V>collect(Iterable<T> iterable, Function<? super T,V> function)Same effect asIterate.collect(Iterable, Function), but executed in parallel batches.static <T,V>
Collection<V>collect(Iterable<T> iterable, Function<? super T,V> function, boolean allowReorderedResult)Same effect asIterate.collect(Iterable, Function), but executed in parallel batches, and with potentially reordered result.static <T,V,R extends Collection<V>>
Rcollect(Iterable<T> iterable, Function<? super T,V> function, R target, boolean allowReorderedResult)Same effect asIterate.collect(Iterable, Function), but executed in parallel batches, and writing output into the specified collection.static <T,V,R extends Collection<V>>
Rcollect(Iterable<T> iterable, Function<? super T,V> function, R target, int batchSize, ForkJoinPool executor, boolean allowReorderedResult)static <T,V>
Collection<V>collectIf(Iterable<T> iterable, Predicate<? super T> predicate, Function<? super T,V> function)Same effect asIterate.collectIf(Iterable, Predicate, Function), but executed in parallel batches.static <T,V>
Collection<V>collectIf(Iterable<T> iterable, Predicate<? super T> predicate, Function<? super T,V> function, boolean allowReorderedResult)Same effect asIterate.collectIf(Iterable, Predicate, Function), but executed in parallel batches, and with potentially reordered results.static <T,V,R extends Collection<V>>
RcollectIf(Iterable<T> iterable, Predicate<? super T> predicate, Function<? super T,V> function, R target, boolean allowReorderedResult)Same effect asIterate.collectIf(Iterable, Predicate, Function), but executed in parallel batches, and writing output into the specified collection.static <T,V,R extends Collection<V>>
RcollectIf(Iterable<T> iterable, Predicate<? super T> predicate, Function<? super T,V> function, R target, int batchSize, ForkJoinPool executor, boolean allowReorderedResult)static <T> intcount(Iterable<T> iterable, Predicate<? super T> predicate)Same effect asIterate.count(Iterable, Predicate), but executed in parallel batches.static <T> intcount(Iterable<T> iterable, Predicate<? super T> predicate, int batchSize, ForkJoinPool executor)Same effect asIterate.count(Iterable, Predicate), but executed in parallel batches.static <T,V>
Collection<V>flatCollect(Iterable<T> iterable, Function<? super T,? extends Iterable<V>> function)static <T,V>
Collection<V>flatCollect(Iterable<T> iterable, Function<? super T,? extends Iterable<V>> function, boolean allowReorderedResult)static <T,V,R extends Collection<V>>
RflatCollect(Iterable<T> iterable, Function<? super T,? extends Iterable<V>> function, R target, boolean allowReorderedResult)static <T,V,R extends Collection<V>>
RflatCollect(Iterable<T> iterable, Function<? super T,? extends Iterable<V>> function, R target, int batchSize, ForkJoinPool executor, boolean allowReorderedResult)static <T> voidforEach(Iterable<T> iterable, Procedure<? super T> procedure)Iterate over the collection specified in parallel batches using default runtime parameter values.static <T> voidforEach(Iterable<T> iterable, Procedure<? super T> procedure, int batchSize)Iterate over the collection specified in parallel batches using default runtime parameter values.static <T> voidforEach(Iterable<T> iterable, Procedure<? super T> procedure, int batchSize, ForkJoinPool executor)static <T,PT extends Procedure<? super T>>
voidforEach(Iterable<T> iterable, ProcedureFactory<PT> procedureFactory, Combiner<PT> combiner)static <T,PT extends Procedure<? super T>>
voidforEach(Iterable<T> iterable, ProcedureFactory<PT> procedureFactory, Combiner<PT> combiner, int batchSize)Iterate over the collection specified in parallel batches using the default values for the task size.static <T,PT extends Procedure<? super T>>
voidforEach(Iterable<T> iterable, ProcedureFactory<PT> procedureFactory, Combiner<PT> combiner, int minForkSize, int taskCount)Iterate over the collection specified in parallel batches using the default values for the task size.static <T,PT extends Procedure<? super T>>
voidforEach(Iterable<T> iterable, ProcedureFactory<PT> procedureFactory, Combiner<PT> combiner, int minForkSize, int taskCount, ForkJoinPool executor)static <T,PT extends Procedure<? super T>>
voidforEach(Iterable<T> iterable, ProcedureFactory<PT> blockFactory, Combiner<PT> combiner, int batchSize, ForkJoinPool executor)static <T,PT extends Procedure<? super T>>
voidforEach(Iterable<T> iterable, ProcedureFactory<PT> procedureFactory, Combiner<PT> combiner, ForkJoinPool executor)static <T,PT extends Procedure<? super T>>
voidforEach(Iterable<T> iterable, PT procedure, int minForkSize, int taskCount)Iterate over the collection specified in parallel batches using the specified minimum fork and task count sizes.static <T,PT extends Procedure<? super T>>
voidforEach(Iterable<T> iterable, PT procedure, int minForkSize, int taskCount, ForkJoinPool executor)static <T,PT extends Procedure<? super T>>
voidforEach(Iterable<T> iterable, PT procedure, ForkJoinPool executor)Iterate over the collection specified in parallel batches using default runtime parameter values and the specified executor.static <T,PT extends Procedure<? super T>>
voidforEachInBatchWithExecutor(BatchIterable<T> batchIterable, ProcedureFactory<PT> procedureFactory, Combiner<PT> combiner, int minForkSize, int taskCount, ForkJoinPool executor)static <T,PT extends Procedure<? super T>>
voidforEachInListOnExecutor(List<T> list, ProcedureFactory<PT> procedureFactory, Combiner<PT> combiner, int minForkSize, int taskCount, ForkJoinPool executor)static <T> voidforEachWithIndex(Iterable<T> iterable, ObjectIntProcedure<? super T> procedure)Iterate over the collection specified, in parallel batches using default runtime parameter values.static <T,PT extends ObjectIntProcedure<? super T>>
voidforEachWithIndex(Iterable<T> iterable, ObjectIntProcedureFactory<PT> procedureFactory, Combiner<PT> combiner, int minForkSize, int taskCount)static <T,PT extends ObjectIntProcedure<? super T>>
voidforEachWithIndex(Iterable<T> iterable, ObjectIntProcedureFactory<PT> procedureFactory, Combiner<PT> combiner, int minForkSize, int taskCount, ForkJoinPool executor)static <T,PT extends ObjectIntProcedure<? super T>>
voidforEachWithIndex(Iterable<T> iterable, ObjectIntProcedureFactory<PT> procedureFactory, Combiner<PT> combiner, ForkJoinPool executor)static <T,PT extends ObjectIntProcedure<? super T>>
voidforEachWithIndex(Iterable<T> iterable, PT procedure, int minForkSize, int taskCount)Iterate over the collection specified in parallel batches.static <T,PT extends ObjectIntProcedure<? super T>>
voidforEachWithIndex(Iterable<T> iterable, PT procedure, ForkJoinPool executor)Iterate over the collection specified in parallel batches using the default runtime parameters.static <T,PT extends ObjectIntProcedure<? super T>>
voidforEachWithIndexInListOnExecutor(List<T> list, ObjectIntProcedureFactory<PT> procedureFactory, Combiner<PT> combiner, int minForkSize, int taskCount, ForkJoinPool executor)static <K,V>
MutableMultimap<K,V>groupBy(Iterable<V> iterable, Function<? super V,? extends K> function)Same effect asIterate.groupBy(Iterable, Function), but executed in parallel batches, and writing output into a SynchronizedPutFastListMultimap.static <K,V>
MutableMultimap<K,V>groupBy(Iterable<V> iterable, Function<? super V,? extends K> function, int batchSize)Same effect asIterate.groupBy(Iterable, Function), but executed in parallel batches, and writing output into a SynchronizedPutFastListMultimap.static <K,V>
MutableMultimap<K,V>groupBy(Iterable<V> iterable, Function<? super V,? extends K> function, int batchSize, ForkJoinPool executor)Same effect asIterate.groupBy(Iterable, Function), but executed in parallel batches, and writing output into a SynchronizedPutFastListMultimap.static <K,V,R extends MutableMultimap<K,V>>
MutableMultimap<K,V>groupBy(Iterable<V> iterable, Function<? super V,? extends K> function, R concurrentMultimap)Same effect asIterate.groupBy(Iterable, Function), but executed in parallel batches, and writing output into a SynchronizedPutFastListMultimap.static <K,V,R extends MutableMultimap<K,V>>
MutableMultimap<K,V>groupBy(Iterable<V> iterable, Function<? super V,? extends K> function, R concurrentMultimap, int batchSize)Same effect asIterate.groupBy(Iterable, Function), but executed in parallel batches, and writing output into a SynchronizedPutFastListMultimap.static <K,V,R extends MutableMultimap<K,V>>
MutableMultimap<K,V>groupBy(Iterable<V> iterable, Function<? super V,? extends K> function, R concurrentMultimap, int batchSize, ForkJoinPool executor)Same effect asIterate.groupBy(Iterable, Function), but executed in parallel batches, and writing output into a SynchronizedPutFastListMultimap.static <T> Collection<T>reject(Iterable<T> iterable, Predicate<? super T> predicate)Same effect asIterate.reject(Iterable, Predicate), but executed in parallel batches.static <T> Collection<T>reject(Iterable<T> iterable, Predicate<? super T> predicate, boolean allowReorderedResult)Same effect asIterate.reject(Iterable, Predicate), but executed in parallel batches, and with a potentially reordered result.static <T,R extends Collection<T>>
Rreject(Iterable<T> iterable, Predicate<? super T> predicate, R target, boolean allowReorderedResult)Same effect asIterate.reject(Iterable, Predicate), but executed in parallel batches, and writing output into the specified collection.static <T,R extends Collection<T>>
Rreject(Iterable<T> iterable, Predicate<? super T> predicate, R target, int batchSize, ForkJoinPool executor, boolean allowReorderedResult)static <T> Collection<T>select(Iterable<T> iterable, Predicate<? super T> predicate)Same effect asIterate.select(Iterable, Predicate), but executed in parallel batches.static <T> Collection<T>select(Iterable<T> iterable, Predicate<? super T> predicate, boolean allowReorderedResult)Same effect asIterate.select(Iterable, Predicate), but executed in parallel batches, and with a potentially reordered result.static <T,R extends Collection<T>>
Rselect(Iterable<T> iterable, Predicate<? super T> predicate, R target, boolean allowReorderedResult)Same effect asIterate.select(Iterable, Predicate), but executed in parallel batches, and writing output into the specified collection.static <T,R extends Collection<T>>
Rselect(Iterable<T> iterable, Predicate<? super T> predicate, R target, int batchSize, ForkJoinPool executor, boolean allowReorderedResult)Same effect asIterate.select(Iterable, Predicate), but executed in parallel batches, and writing output into the specified collection.
-
-
-
Field Detail
-
DEFAULT_MIN_FORK_SIZE
public static final int DEFAULT_MIN_FORK_SIZE
- See Also:
- Constant Field Values
-
-
Method Detail
-
forEachWithIndex
public static <T> void forEachWithIndex(Iterable<T> iterable, ObjectIntProcedure<? super T> procedure)
Iterate over the collection specified, in parallel batches using default runtime parameter values. TheObjectIntProcedureused must be stateless, or use concurrent aware objects if they are to be shared.e.g.
Map<Integer, Object> chm = new ConcurrentHashMap<Integer, Object>(); FJIterate.forEachWithIndex(collection, (each, index) -> chm.put(index, each));
-
forEachWithIndex
public static <T,PT extends ObjectIntProcedure<? super T>> void forEachWithIndex(Iterable<T> iterable, PT procedure, ForkJoinPool executor)
Iterate over the collection specified in parallel batches using the default runtime parameters. The ObjectIntProcedure used must be stateless, or use concurrent aware objects if they are to be shared. The code is executed against the specified executor.e.g. Map<Integer, Object> chm = new ConcurrentHashMap<Integer, Object>(); FJIterate.forEachWithIndex(collection, (each, index) -> chm.put(index, each), executor);
- Parameters:
executor- Use this executor for all execution.
-
forEachWithIndex
public static <T,PT extends ObjectIntProcedure<? super T>> void forEachWithIndex(Iterable<T> iterable, PT procedure, int minForkSize, int taskCount)
Iterate over the collection specified in parallel batches. The ObjectIntProcedure used must be stateless, or use concurrent aware objects if they are to be shared. The specified minimum fork size and task count are used instead of the default values.- Parameters:
minForkSize- Only run in parallel if input collection is longer than this.taskCount- The number of parallel tasks to submit to the executor.- See Also:
forEachWithIndex(Iterable, ObjectIntProcedure)
-
forEachWithIndex
public static <T,PT extends ObjectIntProcedure<? super T>> void forEachWithIndex(Iterable<T> iterable, ObjectIntProcedureFactory<PT> procedureFactory, Combiner<PT> combiner, ForkJoinPool executor)
-
forEachWithIndex
public static <T,PT extends ObjectIntProcedure<? super T>> void forEachWithIndex(Iterable<T> iterable, ObjectIntProcedureFactory<PT> procedureFactory, Combiner<PT> combiner, int minForkSize, int taskCount)
-
forEachWithIndex
public static <T,PT extends ObjectIntProcedure<? super T>> void forEachWithIndex(Iterable<T> iterable, ObjectIntProcedureFactory<PT> procedureFactory, Combiner<PT> combiner, int minForkSize, int taskCount, ForkJoinPool executor)
-
forEachWithIndexInListOnExecutor
public static <T,PT extends ObjectIntProcedure<? super T>> void forEachWithIndexInListOnExecutor(List<T> list, ObjectIntProcedureFactory<PT> procedureFactory, Combiner<PT> combiner, int minForkSize, int taskCount, ForkJoinPool executor)
-
forEach
public static <T> void forEach(Iterable<T> iterable, Procedure<? super T> procedure)
Iterate over the collection specified in parallel batches using default runtime parameter values. TheProcedureused must be stateless, or use concurrent aware objects if they are to be shared.e.g.
Map<Object, Boolean> chm = new ConcurrentHashMap<Object, Boolean>(); FJIterate.forEach(collection, each -> chm.put(each, Boolean.TRUE));
-
forEach
public static <T> void forEach(Iterable<T> iterable, Procedure<? super T> procedure, int batchSize)
Iterate over the collection specified in parallel batches using default runtime parameter values. TheProcedureused must be stateless, or use concurrent aware objects if they are to be shared.e.g.
Map<Object, Boolean> chm = new ConcurrentHashMap<Object, Boolean>(); FJIterate.forEachBatchSize(collection, each -> chm.put(each, Boolean.TRUE), 100);
-
forEach
public static <T> void forEach(Iterable<T> iterable, Procedure<? super T> procedure, int batchSize, ForkJoinPool executor)
-
forEach
public static <T,PT extends Procedure<? super T>> void forEach(Iterable<T> iterable, PT procedure, ForkJoinPool executor)
Iterate over the collection specified in parallel batches using default runtime parameter values and the specified executor. TheProcedureused must be stateless, or use concurrent aware objects if they are to be shared.- Parameters:
executor- Use this executor for all execution.- See Also:
forEach(Iterable, Procedure)
-
forEach
public static <T,PT extends Procedure<? super T>> void forEach(Iterable<T> iterable, PT procedure, int minForkSize, int taskCount)
Iterate over the collection specified in parallel batches using the specified minimum fork and task count sizes. TheProcedureused must be stateless, or use concurrent aware objects if they are to be shared.- Parameters:
minForkSize- Only run in parallel if input collection is longer than this.taskCount- The number of parallel tasks to submit to the executor.- See Also:
forEach(Iterable, Procedure)
-
forEach
public static <T,PT extends Procedure<? super T>> void forEach(Iterable<T> iterable, PT procedure, int minForkSize, int taskCount, ForkJoinPool executor)
-
forEach
public static <T,PT extends Procedure<? super T>> void forEach(Iterable<T> iterable, ProcedureFactory<PT> procedureFactory, Combiner<PT> combiner, ForkJoinPool executor)
-
forEach
public static <T,PT extends Procedure<? super T>> void forEach(Iterable<T> iterable, ProcedureFactory<PT> procedureFactory, Combiner<PT> combiner)
-
forEach
public static <T,PT extends Procedure<? super T>> void forEach(Iterable<T> iterable, ProcedureFactory<PT> procedureFactory, Combiner<PT> combiner, int batchSize)
Iterate over the collection specified in parallel batches using the default values for the task size. The ProcedureFactory can create stateful closures that will be collected and combined using the specified Combiner.
-
forEach
public static <T,PT extends Procedure<? super T>> void forEach(Iterable<T> iterable, ProcedureFactory<PT> blockFactory, Combiner<PT> combiner, int batchSize, ForkJoinPool executor)
-
forEach
public static <T,PT extends Procedure<? super T>> void forEach(Iterable<T> iterable, ProcedureFactory<PT> procedureFactory, Combiner<PT> combiner, int minForkSize, int taskCount)
Iterate over the collection specified in parallel batches using the default values for the task size. The ProcedureFactory can create stateful closures that will be collected and combined using the specified Combiner.
-
forEach
public static <T,PT extends Procedure<? super T>> void forEach(Iterable<T> iterable, ProcedureFactory<PT> procedureFactory, Combiner<PT> combiner, int minForkSize, int taskCount, ForkJoinPool executor)
-
forEachInListOnExecutor
public static <T,PT extends Procedure<? super T>> void forEachInListOnExecutor(List<T> list, ProcedureFactory<PT> procedureFactory, Combiner<PT> combiner, int minForkSize, int taskCount, ForkJoinPool executor)
-
forEachInBatchWithExecutor
public static <T,PT extends Procedure<? super T>> void forEachInBatchWithExecutor(BatchIterable<T> batchIterable, ProcedureFactory<PT> procedureFactory, Combiner<PT> combiner, int minForkSize, int taskCount, ForkJoinPool executor)
-
select
public static <T> Collection<T> select(Iterable<T> iterable, Predicate<? super T> predicate)
Same effect asIterate.select(Iterable, Predicate), but executed in parallel batches.- Returns:
- The selected elements. The Collection will be of the same type as the input (List or Set) and will be in the same order as the input (if it is an ordered collection).
- See Also:
select(Iterable, Predicate, boolean)
-
select
public static <T> Collection<T> select(Iterable<T> iterable, Predicate<? super T> predicate, boolean allowReorderedResult)
Same effect asIterate.select(Iterable, Predicate), but executed in parallel batches, and with a potentially reordered result.- Parameters:
allowReorderedResult- If the result can be in a different order. Allowing reordering may yield faster execution.- Returns:
- The selected elements. The Collection will be of the same type (List or Set) as the input.
-
select
public static <T,R extends Collection<T>> R select(Iterable<T> iterable, Predicate<? super T> predicate, R target, boolean allowReorderedResult)
Same effect asIterate.select(Iterable, Predicate), but executed in parallel batches, and writing output into the specified collection.- Parameters:
target- Where to write the output.allowReorderedResult- If the result can be in a different order. Allowing reordering may yield faster execution.- Returns:
- The 'target' collection, with the selected elements added.
-
select
public static <T,R extends Collection<T>> R select(Iterable<T> iterable, Predicate<? super T> predicate, R target, int batchSize, ForkJoinPool executor, boolean allowReorderedResult)
Same effect asIterate.select(Iterable, Predicate), but executed in parallel batches, and writing output into the specified collection.- Parameters:
target- Where to write the output.allowReorderedResult- If the result can be in a different order. Allowing reordering may yield faster execution.- Returns:
- The 'target' collection, with the selected elements added.
-
reject
public static <T> Collection<T> reject(Iterable<T> iterable, Predicate<? super T> predicate)
Same effect asIterate.reject(Iterable, Predicate), but executed in parallel batches.- Returns:
- The rejected elements. The Collection will be of the same type as the input (List or Set) and will be in the same order as the input (if it is an ordered collection).
- See Also:
reject(Iterable, Predicate, boolean)
-
reject
public static <T> Collection<T> reject(Iterable<T> iterable, Predicate<? super T> predicate, boolean allowReorderedResult)
Same effect asIterate.reject(Iterable, Predicate), but executed in parallel batches, and with a potentially reordered result.- Parameters:
allowReorderedResult- If the result can be in a different order. Allowing reordering may yield faster execution.- Returns:
- The rejected elements. The Collection will be of the same type (List or Set) as the input.
-
reject
public static <T,R extends Collection<T>> R reject(Iterable<T> iterable, Predicate<? super T> predicate, R target, boolean allowReorderedResult)
Same effect asIterate.reject(Iterable, Predicate), but executed in parallel batches, and writing output into the specified collection.- Parameters:
target- Where to write the output.allowReorderedResult- If the result can be in a different order. Allowing reordering may yield faster execution.- Returns:
- The 'target' collection, with the rejected elements added.
-
reject
public static <T,R extends Collection<T>> R reject(Iterable<T> iterable, Predicate<? super T> predicate, R target, int batchSize, ForkJoinPool executor, boolean allowReorderedResult)
-
count
public static <T> int count(Iterable<T> iterable, Predicate<? super T> predicate)
Same effect asIterate.count(Iterable, Predicate), but executed in parallel batches.- Returns:
- The number of elements which satisfy the Predicate.
-
count
public static <T> int count(Iterable<T> iterable, Predicate<? super T> predicate, int batchSize, ForkJoinPool executor)
Same effect asIterate.count(Iterable, Predicate), but executed in parallel batches.- Returns:
- The number of elements which satisfy the Predicate.
-
collect
public static <T,V> Collection<V> collect(Iterable<T> iterable, Function<? super T,V> function)
Same effect asIterate.collect(Iterable, Function), but executed in parallel batches.- Returns:
- The collected elements. The Collection will be of the same type as the input (List or Set) and will be in the same order as the input (if it is an ordered collection).
- See Also:
collect(Iterable, Function, boolean)
-
collect
public static <T,V> Collection<V> collect(Iterable<T> iterable, Function<? super T,V> function, boolean allowReorderedResult)
Same effect asIterate.collect(Iterable, Function), but executed in parallel batches, and with potentially reordered result.- Parameters:
allowReorderedResult- If the result can be in a different order. Allowing reordering may yield faster execution.- Returns:
- The collected elements. The Collection will be of the same type (List or Set) as the input.
-
collect
public static <T,V,R extends Collection<V>> R collect(Iterable<T> iterable, Function<? super T,V> function, R target, boolean allowReorderedResult)
Same effect asIterate.collect(Iterable, Function), but executed in parallel batches, and writing output into the specified collection.- Parameters:
target- Where to write the output.allowReorderedResult- If the result can be in a different order. Allowing reordering may yield faster execution.- Returns:
- The 'target' collection, with the collected elements added.
-
collect
public static <T,V,R extends Collection<V>> R collect(Iterable<T> iterable, Function<? super T,V> function, R target, int batchSize, ForkJoinPool executor, boolean allowReorderedResult)
-
flatCollect
public static <T,V> Collection<V> flatCollect(Iterable<T> iterable, Function<? super T,? extends Iterable<V>> function)
-
flatCollect
public static <T,V> Collection<V> flatCollect(Iterable<T> iterable, Function<? super T,? extends Iterable<V>> function, boolean allowReorderedResult)
-
flatCollect
public static <T,V,R extends Collection<V>> R flatCollect(Iterable<T> iterable, Function<? super T,? extends Iterable<V>> function, R target, boolean allowReorderedResult)
-
flatCollect
public static <T,V,R extends Collection<V>> R flatCollect(Iterable<T> iterable, Function<? super T,? extends Iterable<V>> function, R target, int batchSize, ForkJoinPool executor, boolean allowReorderedResult)
-
collectIf
public static <T,V> Collection<V> collectIf(Iterable<T> iterable, Predicate<? super T> predicate, Function<? super T,V> function)
Same effect asIterate.collectIf(Iterable, Predicate, Function), but executed in parallel batches.- Returns:
- The collected elements. The Collection will be of the same type as the input (List or Set) and will be in the same order as the input (if it is an ordered collection).
- See Also:
collectIf(Iterable, Predicate, Function, boolean)
-
collectIf
public static <T,V> Collection<V> collectIf(Iterable<T> iterable, Predicate<? super T> predicate, Function<? super T,V> function, boolean allowReorderedResult)
Same effect asIterate.collectIf(Iterable, Predicate, Function), but executed in parallel batches, and with potentially reordered results.- Parameters:
allowReorderedResult- If the result can be in a different order. Allowing reordering may yield faster execution.- Returns:
- The collected elements. The Collection will be of the same type as the input (List or Set)
-
collectIf
public static <T,V,R extends Collection<V>> R collectIf(Iterable<T> iterable, Predicate<? super T> predicate, Function<? super T,V> function, R target, boolean allowReorderedResult)
Same effect asIterate.collectIf(Iterable, Predicate, Function), but executed in parallel batches, and writing output into the specified collection.- Parameters:
target- Where to write the output.allowReorderedResult- If the result can be in a different order. Allowing reordering may yield faster execution.- Returns:
- The 'target' collection, with the collected elements added.
-
collectIf
public static <T,V,R extends Collection<V>> R collectIf(Iterable<T> iterable, Predicate<? super T> predicate, Function<? super T,V> function, R target, int batchSize, ForkJoinPool executor, boolean allowReorderedResult)
-
aggregateBy
public static <T,K,V> MutableMap<K,V> aggregateBy(Iterable<T> iterable, Function<? super T,? extends K> groupBy, Function0<? extends V> zeroValueFactory, Function2<? super V,? super T,? extends V> nonMutatingAggregator)
-
aggregateBy
public static <T,K,V,R extends MutableMapIterable<K,V>> R aggregateBy(Iterable<T> iterable, Function<? super T,? extends K> groupBy, Function0<? extends V> zeroValueFactory, Function2<? super V,? super T,? extends V> nonMutatingAggregator, R mutableMap)
-
aggregateBy
public static <T,K,V> MutableMap<K,V> aggregateBy(Iterable<T> iterable, Function<? super T,? extends K> groupBy, Function0<? extends V> zeroValueFactory, Function2<? super V,? super T,? extends V> nonMutatingAggregator, int batchSize)
-
aggregateBy
public static <T,K,V,R extends MutableMapIterable<K,V>> R aggregateBy(Iterable<T> iterable, Function<? super T,? extends K> groupBy, Function0<? extends V> zeroValueFactory, Function2<? super V,? super T,? extends V> nonMutatingAggregator, R mutableMap, int batchSize)
-
aggregateBy
public static <T,K,V> MutableMap<K,V> aggregateBy(Iterable<T> iterable, Function<? super T,? extends K> groupBy, Function0<? extends V> zeroValueFactory, Function2<? super V,? super T,? extends V> nonMutatingAggregator, int batchSize, ForkJoinPool executor)
-
aggregateBy
public static <T,K,V,R extends MutableMapIterable<K,V>> R aggregateBy(Iterable<T> iterable, Function<? super T,? extends K> groupBy, Function0<? extends V> zeroValueFactory, Function2<? super V,? super T,? extends V> nonMutatingAggregator, R mutableMap, int batchSize, ForkJoinPool executor)
-
aggregateInPlaceBy
public static <T,K,V> MutableMap<K,V> aggregateInPlaceBy(Iterable<T> iterable, Function<? super T,? extends K> groupBy, Function0<? extends V> zeroValueFactory, Procedure2<? super V,? super T> mutatingAggregator)
-
aggregateInPlaceBy
public static <T,K,V,R extends MutableMapIterable<K,V>> R aggregateInPlaceBy(Iterable<T> iterable, Function<? super T,? extends K> groupBy, Function0<? extends V> zeroValueFactory, Procedure2<? super V,? super T> mutatingAggregator, R mutableMap)
-
aggregateInPlaceBy
public static <T,K,V> MutableMap<K,V> aggregateInPlaceBy(Iterable<T> iterable, Function<? super T,? extends K> groupBy, Function0<? extends V> zeroValueFactory, Procedure2<? super V,? super T> mutatingAggregator, int batchSize)
-
aggregateInPlaceBy
public static <T,K,V,R extends MutableMapIterable<K,V>> R aggregateInPlaceBy(Iterable<T> iterable, Function<? super T,? extends K> groupBy, Function0<? extends V> zeroValueFactory, Procedure2<? super V,? super T> mutatingAggregator, R mutableMap, int batchSize)
-
aggregateInPlaceBy
public static <T,K,V> MutableMap<K,V> aggregateInPlaceBy(Iterable<T> iterable, Function<? super T,? extends K> groupBy, Function0<? extends V> zeroValueFactory, Procedure2<? super V,? super T> mutatingAggregator, int batchSize, ForkJoinPool executor)
-
aggregateInPlaceBy
public static <T,K,V,R extends MutableMapIterable<K,V>> R aggregateInPlaceBy(Iterable<T> iterable, Function<? super T,? extends K> groupBy, Function0<? extends V> zeroValueFactory, Procedure2<? super V,? super T> mutatingAggregator, R mutableMap, int batchSize, ForkJoinPool executor)
-
groupBy
public static <K,V> MutableMultimap<K,V> groupBy(Iterable<V> iterable, Function<? super V,? extends K> function)
Same effect asIterate.groupBy(Iterable, Function), but executed in parallel batches, and writing output into a SynchronizedPutFastListMultimap.
-
groupBy
public static <K,V,R extends MutableMultimap<K,V>> MutableMultimap<K,V> groupBy(Iterable<V> iterable, Function<? super V,? extends K> function, R concurrentMultimap)
Same effect asIterate.groupBy(Iterable, Function), but executed in parallel batches, and writing output into a SynchronizedPutFastListMultimap.
-
groupBy
public static <K,V,R extends MutableMultimap<K,V>> MutableMultimap<K,V> groupBy(Iterable<V> iterable, Function<? super V,? extends K> function, R concurrentMultimap, int batchSize)
Same effect asIterate.groupBy(Iterable, Function), but executed in parallel batches, and writing output into a SynchronizedPutFastListMultimap.
-
groupBy
public static <K,V> MutableMultimap<K,V> groupBy(Iterable<V> iterable, Function<? super V,? extends K> function, int batchSize)
Same effect asIterate.groupBy(Iterable, Function), but executed in parallel batches, and writing output into a SynchronizedPutFastListMultimap.
-
groupBy
public static <K,V> MutableMultimap<K,V> groupBy(Iterable<V> iterable, Function<? super V,? extends K> function, int batchSize, ForkJoinPool executor)
Same effect asIterate.groupBy(Iterable, Function), but executed in parallel batches, and writing output into a SynchronizedPutFastListMultimap.
-
groupBy
public static <K,V,R extends MutableMultimap<K,V>> MutableMultimap<K,V> groupBy(Iterable<V> iterable, Function<? super V,? extends K> function, R concurrentMultimap, int batchSize, ForkJoinPool executor)
Same effect asIterate.groupBy(Iterable, Function), but executed in parallel batches, and writing output into a SynchronizedPutFastListMultimap.
-
-