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 of the higher level parallel algorithms depend on the basic parallel algorithm named
forEach
.
The forEach algorithm employs a batching fork and join approach.
All Collections that are not either a RandomAccess
or List
are first converted to a Java array
using Iterate.toArray(Iterable)
, and then run with one of the FJIterate.forEach
methods.
- See Also:
ParallelIterate
-
Field Summary
Fields Modifier and Type Field Description static int
DEFAULT_MIN_FORK_SIZE
-
Method Summary
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> int
count(Iterable<T> iterable, Predicate<? super T> predicate)
Same effect asIterate.count(Iterable, Predicate)
, but executed in parallel batches.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.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> void
forEach(Iterable<T> iterable, Procedure<? super T> procedure)
Iterate over the collection specified in parallel batches using default runtime parameter values.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.static <T> void
forEach(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> void
forEachWithIndex(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 Details
-
DEFAULT_MIN_FORK_SIZE
public static final int DEFAULT_MIN_FORK_SIZE- See Also:
- Constant Field Values
-
-
Method Details
-
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. TheObjectIntProcedure
used must be stateless, or use concurrent aware objects if they are to be shared.e.g.
final ConcurrentMutableMap<Integer, Object> chm = new ConcurrentHashMap<Integer, Object>();
FJIterate.forEachWithIndex(collection, new ObjectIntProcedure() { public void value(Object object, int index) { chm.put(index, object); } }); -
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.
final ConcurrentMutableMap<Integer, Object> chm = new ConcurrentHashMap<Integer, Object>();
FJIterate.forEachWithIndex(collection, new ObjectIntProcedure() { public void value(Object object, int index) { chm.put(index, object); } }, 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
Iterate over the collection specified in parallel batches using default runtime parameter values. TheProcedure
used must be stateless, or use concurrent aware objects if they are to be shared.e.g.
final ConcurrentMutableMap<Object, Boolean> chm = new ConcurrentHashMap<Object, Boolean>();
FJIterate.forEach(collection, new Procedure() { public void value(Object object) { chm.put(object, 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. TheProcedure
used must be stateless, or use concurrent aware objects if they are to be shared.e.g.
final ConcurrentMutableMap<Object, Boolean> chm = new ConcurrentHashMap<Object, Boolean>();
FJIterate.forEachBatchSize(collection, new Procedure() { public void value(Object object) { chm.put(object, 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. TheProcedure
used 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. TheProcedure
used 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
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
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
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
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.
-