Package extra166y
Class ParallelLongArray
An array of longs supporting parallel operations. This class
provides methods supporting the same operations as
ParallelArray
, but specialized for scalar longs. It additionally
provides a few methods specific to numerical values.
Sample usages. Here is a complete (although naive) prime filter program:
import java.math.BigInteger; import java.util.concurrent.*; import static extra166y.Ops.*; import static extra166y.ParallelLongArray.*; public class Sieve { public static void main(String[] args) { int n = Integer.parseInt(args[0]); // create array of divisors ParallelLongArray a = create(n-1, defaultExecutor()); a.replaceWithMappedIndex(add2); int i = 0; long p = 2; while (p * p < n) { // repeatedly filter a = a.withFilter(notDivisibleBy(p)).all(); p = a.get(++i); } System.out.printf("sieve(%d) = %s%n", n, a); // check result if (!a.withFilter(notProbablePrime).isEmpty()) throw new Error(); } static IntToLong add2 = new IntToLong() { public long op(int i) { return i + 2; } }; static LongPredicate notDivisibleBy(final long p) { return new LongPredicate() { public boolean op(long n) { return n <= p || (n % p) != 0; } }; } static LongPredicate notProbablePrime = new LongPredicate() { private static final int CERTAINTY = 8; public boolean op(long n) { return !BigInteger.valueOf(n).isProbablePrime(CERTAINTY); } }; }
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interface
Summary statistics for a possibly bounded, filtered, and/or mapped ParallelLongArray. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
ParallelLongArray
(ForkJoinPool executor, long[] array, int limit) Constructor for use by subclasses to create a new ParallelLongArray using the given executor, and initially using the supplied array, with effective size bound by the given limit. -
Method Summary
Modifier and TypeMethodDescriptionaddAll
(long[] other) Equivalent to asList().addAll but specialized for array arguments and likely to be more efficient.Appends all (possibly bounded, filtered, or mapped) elements of the given ParallelDoubleArray, resizing and/or reallocating this array if necessary.all()
Returns a new ParallelLongArray holding all elementsReturns a new ParallelLongArray containing only the unique elements of this array (that is, without any duplicates).void
apply
(Ops.LongProcedure procedure) Applies the given procedure to elementsasList()
Returns a view of this ParallelLongArray as a List.int
binarySearch
(long target) Assuming this array is sorted, returns the index of an element equal to given target, or -1 if not present.int
binarySearch
(long target, Ops.LongComparator comparator) Assuming this array is sorted with respect to the given comparator, returns the index of an element equal to given target, or -1 if not present.static ParallelLongArray
create
(int size, ForkJoinPool executor) Creates a new ParallelLongArray using the given executor and an array of the given sizestatic ParallelLongArray
createEmpty
(int size, ForkJoinPool executor) Creates a new ParallelLongArray using the given executor and an array of the given size, but with an initial effective size of zero, enabling incremental insertion viaasList()
operations.static ParallelLongArray
createFromCopy
(int size, long[] source, ForkJoinPool executor) Creates a new ParallelLongArray using an array of the given size, initially holding copies of the given source truncated or padded with zeros to obtain the specified length.static ParallelLongArray
createFromCopy
(long[] source, ForkJoinPool executor) Creates a new ParallelLongArray using the given executor and initially holding copies of the given source elements.static ParallelLongArray
createUsingHandoff
(long[] handoff, ForkJoinPool executor) Creates a new ParallelLongArray initially using the given array and executor.cumulate
(Ops.LongReducer reducer, long base) Replaces each element with the running cumulation of applying the given reducer.Replaces each element with the running sumstatic ForkJoinPool
Returns a common default executor for use in ParallelArrays.long
get
(int i) Returns the element of the array at the given indexlong[]
getArray()
Returns the underlying array used for computationsReturns the executor used for computationsboolean
Returns true if all elements at the same relative positions of this and other array are equal.int
indexOf
(long target) Returns the index of some element equal to given target, or -1 if not presentiterator()
Returns an iterator stepping through each element of the array up to the current limit.long
max()
Returns the maximum element, or Long.MIN_VALUE if emptylong
max
(Ops.LongComparator comparator) Returns the maximum element, or Long.MIN_VALUE if emptylong
min()
Returns the minimum element, or Long.MAX_VALUE if empty,long
min
(Ops.LongComparator comparator) Returns the minimum element, or Long.MAX_VALUE if emptylong
precumulate
(Ops.LongReducer reducer, long base) Replaces each element with the cumulation of applying the given reducer to all previous values, and returns the total reduction.long
Replaces each element with its prefix sumlong
reduce
(Ops.LongReducer reducer, long base) Returns reduction of elementsremoveAll
(Ops.LongPredicate selector) Removes from the array all elements for which the given selector holds.Removes consecutive elements that are equal, shifting others leftward, and possibly decreasing size.replaceWithGeneratedValue
(Ops.LongGenerator generator) Replaces elements with the results of applying the given generator.Replaces elements with the results of applying the given mapping to each index and current element valueReplaces elements with the results of applying the given op to their indices.replaceWithMapping
(Ops.BinaryLongOp combiner, long[] other) Replaces elements with results of applying op(thisElement, otherElement)replaceWithMapping
(Ops.BinaryLongOp combiner, ParallelLongArrayWithLongMapping other) Replaces elements with results of applying op(thisElement, otherElement)Replaces elements with the results of applying the given op to their current values.replaceWithValue
(long value) Replaces elements with the given value.void
set
(int i, long x) Sets the element of the array at the given index to the given valuefinal void
setLimit
(int newLimit) Ensures that the underlying array can be accessed up to the given upper bound, reallocating and copying the underlying array to expand if necessary.int
size()
Returns the effective size of the underlying array.sort()
Sorts the array, assuming all elements are Comparable.sort
(Ops.LongComparator comparator) Sorts the array.long
sum()
Returns the sum of elementssummary()
Returns summary statistics, using natural comparatorsummary
(Ops.LongComparator comparator) Returns summary statistics, using the given comparator to locate minimum and maximum elements.toString()
Equivalent to asList().toString()withBounds
(int firstIndex, int upperBound) Returns an operation prefix that causes a method to operate only on the elements of the array between firstIndex (inclusive) and upperBound (exclusive).withFilter
(Ops.BinaryLongPredicate selector, ParallelLongArrayWithLongMapping other) Returns an operation prefix that causes a method to operate only on elements for which the given binary selector returns truewithFilter
(Ops.LongPredicate selector) Returns an operation prefix that causes a method to operate only on the elements of the array for which the given selector returns truewithIndexedFilter
(Ops.IntAndLongPredicate selector) Returns an operation prefix that causes a method to operate only on elements for which the given indexed selector returns trueReturns an operation prefix that causes a method to operate on mappings of this array using the given mapper that accepts as arguments an element's current index and value, and produces a new value.Returns an operation prefix that causes a method to operate on mappings of this array using the given mapper that accepts as arguments an element's current index and value, and produces a new value.<U> ParallelLongArrayWithMapping
<U> withIndexedMapping
(Ops.IntAndLongToObject<? extends U> mapper) Returns an operation prefix that causes a method to operate on mappings of this array using the given mapper that accepts as arguments an element's current index and value, and produces a new value.withMapping
(Ops.BinaryLongOp combiner, ParallelLongArrayWithLongMapping other) Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.withMapping
(Ops.LongAndDoubleToDouble combiner, ParallelDoubleArrayWithDoubleMapping other) Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.withMapping
(Ops.LongAndDoubleToLong combiner, ParallelDoubleArrayWithDoubleMapping other) Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.<V> ParallelLongArrayWithMapping
<V> withMapping
(Ops.LongAndDoubleToObject<? extends V> combiner, ParallelDoubleArrayWithDoubleMapping other) Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.withMapping
(Ops.LongAndLongToDouble combiner, ParallelLongArrayWithLongMapping other) Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.<V> ParallelLongArrayWithMapping
<V> withMapping
(Ops.LongAndLongToObject<? extends V> combiner, ParallelLongArrayWithLongMapping other) Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.withMapping
(Ops.LongAndObjectToDouble<? super V> combiner, ParallelArrayWithMapping<W, V> other) Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.withMapping
(Ops.LongAndObjectToLong<? super V> combiner, ParallelArrayWithMapping<W, V> other) Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.<V,
W, X> ParallelLongArrayWithMapping <W> withMapping
(Ops.LongAndObjectToObject<? super V, ? extends W> combiner, ParallelArrayWithMapping<X, V> other) Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.Returns an operation prefix that causes a method to operate on mapped elements of the array using the given op.Returns an operation prefix that causes a method to operate on mapped elements of the array using the given op.<U> ParallelLongArrayWithMapping
<U> withMapping
(Ops.LongToObject<? extends U> op) Returns an operation prefix that causes a method to operate on mapped elements of the array using the given op.Methods inherited from class extra166y.ParallelLongArrayWithLongMapping
sequentially
Methods inherited from class extra166y.AbstractParallelAnyArray
anyIndex, isEmpty
-
Constructor Details
-
ParallelLongArray
Constructor for use by subclasses to create a new ParallelLongArray using the given executor, and initially using the supplied array, with effective size bound by the given limit. This constructor is designed to enable extensions via subclassing. To create a ParallelLongArray, usecreate(int, java.util.concurrent.ForkJoinPool)
,createEmpty(int, java.util.concurrent.ForkJoinPool)
,createUsingHandoff(long[], java.util.concurrent.ForkJoinPool)
orcreateFromCopy(long[], java.util.concurrent.ForkJoinPool)
.- Parameters:
executor
- the executorarray
- the arraylimit
- the upper bound limit
-
-
Method Details
-
defaultExecutor
Returns a common default executor for use in ParallelArrays. This executor arranges enough parallelism to use most, but not necessarily all, of the available processors on this system.- Returns:
- the executor
-
create
Creates a new ParallelLongArray using the given executor and an array of the given size- Parameters:
size
- the array sizeexecutor
- the executor
-
createUsingHandoff
Creates a new ParallelLongArray initially using the given array and executor. In general, the handed off array should not be used for other purposes once constructing this ParallelLongArray. The given array may be internally replaced by another array in the course of methods that add or remove elements.- Parameters:
handoff
- the arrayexecutor
- the executor
-
createFromCopy
Creates a new ParallelLongArray using the given executor and initially holding copies of the given source elements.- Parameters:
source
- the source of initial elementsexecutor
- the executor
-
createFromCopy
Creates a new ParallelLongArray using an array of the given size, initially holding copies of the given source truncated or padded with zeros to obtain the specified length.- Parameters:
size
- the array sizesource
- the source of initial elementsexecutor
- the executor
-
createEmpty
Creates a new ParallelLongArray using the given executor and an array of the given size, but with an initial effective size of zero, enabling incremental insertion viaasList()
operations.- Parameters:
size
- the array sizeexecutor
- the executor
-
getExecutor
Returns the executor used for computations- Returns:
- the executor
-
apply
Applies the given procedure to elements- Overrides:
apply
in classParallelLongArrayWithLongMapping
- Parameters:
procedure
- the procedure
-
reduce
Returns reduction of elements- Overrides:
reduce
in classParallelLongArrayWithLongMapping
- Parameters:
reducer
- the reducerbase
- the result for an empty array- Returns:
- reduction
-
all
Returns a new ParallelLongArray holding all elements- Overrides:
all
in classParallelLongArrayWithLongMapping
- Returns:
- a new ParallelLongArray holding all elements
-
replaceWithMapping
Replaces elements with the results of applying the given op to their current values.- Overrides:
replaceWithMapping
in classParallelLongArrayWithFilter
- Parameters:
op
- the op- Returns:
- this (to simplify use in expressions)
-
replaceWithMappedIndex
Replaces elements with the results of applying the given op to their indices.- Overrides:
replaceWithMappedIndex
in classParallelLongArrayWithFilter
- Parameters:
op
- the op- Returns:
- this (to simplify use in expressions)
-
replaceWithMappedIndex
Replaces elements with the results of applying the given mapping to each index and current element value- Overrides:
replaceWithMappedIndex
in classParallelLongArrayWithFilter
- Parameters:
op
- the op- Returns:
- this (to simplify use in expressions)
-
replaceWithGeneratedValue
Replaces elements with the results of applying the given generator. For example, to fill the array with uniform random values, use replaceWithGeneratedValue(Ops.longRandom())- Overrides:
replaceWithGeneratedValue
in classParallelLongArrayWithFilter
- Parameters:
generator
- the generator- Returns:
- this (to simplify use in expressions)
-
replaceWithValue
Replaces elements with the given value.- Overrides:
replaceWithValue
in classParallelLongArrayWithFilter
- Parameters:
value
- the value- Returns:
- this (to simplify use in expressions)
-
replaceWithMapping
public ParallelLongArray replaceWithMapping(Ops.BinaryLongOp combiner, ParallelLongArrayWithLongMapping other) Replaces elements with results of applying op(thisElement, otherElement)- Overrides:
replaceWithMapping
in classParallelLongArrayWithFilter
- Parameters:
combiner
- the combinerother
- the other array- Returns:
- this (to simplify use in expressions)
-
replaceWithMapping
Replaces elements with results of applying op(thisElement, otherElement)- Overrides:
replaceWithMapping
in classParallelLongArrayWithFilter
- Parameters:
combiner
- the combinerother
- the other array- Returns:
- this (to simplify use in expressions)
- Throws:
ArrayIndexOutOfBoundsException
- if other array has fewer elements than this array.
-
indexOf
public int indexOf(long target) Returns the index of some element equal to given target, or -1 if not present- Parameters:
target
- the element to search for- Returns:
- the index or -1 if not present
-
binarySearch
public int binarySearch(long target) Assuming this array is sorted, returns the index of an element equal to given target, or -1 if not present. If the array is not sorted, the results are undefined.- Parameters:
target
- the element to search for- Returns:
- the index or -1 if not present
-
binarySearch
Assuming this array is sorted with respect to the given comparator, returns the index of an element equal to given target, or -1 if not present. If the array is not sorted, the results are undefined.- Parameters:
target
- the element to search forcomparator
- the comparator- Returns:
- the index or -1 if not present
-
summary
Returns summary statistics, using the given comparator to locate minimum and maximum elements.- Overrides:
summary
in classParallelLongArrayWithLongMapping
- Parameters:
comparator
- the comparator to use for locating minimum and maximum elements- Returns:
- the summary.
-
summary
Returns summary statistics, using natural comparator- Overrides:
summary
in classParallelLongArrayWithLongMapping
- Returns:
- the summary.
-
min
Returns the minimum element, or Long.MAX_VALUE if empty- Overrides:
min
in classParallelLongArrayWithLongMapping
- Parameters:
comparator
- the comparator- Returns:
- minimum element, or Long.MAX_VALUE if empty
-
min
public long min()Returns the minimum element, or Long.MAX_VALUE if empty,- Overrides:
min
in classParallelLongArrayWithLongMapping
- Returns:
- minimum element, or Long.MAX_VALUE if empty
-
max
Returns the maximum element, or Long.MIN_VALUE if empty- Overrides:
max
in classParallelLongArrayWithLongMapping
- Parameters:
comparator
- the comparator- Returns:
- maximum element, or Long.MIN_VALUE if empty
-
max
public long max()Returns the maximum element, or Long.MIN_VALUE if empty- Overrides:
max
in classParallelLongArrayWithLongMapping
- Returns:
- maximum element, or Long.MIN_VALUE if empty
-
cumulate
Replaces each element with the running cumulation of applying the given reducer. For example, if the contents are the numbers 1, 2, 3, and the reducer operation adds numbers, then after invocation of this method, the contents would be 1, 3, 6 (that is, 1, 1+2, 1+2+3);- Parameters:
reducer
- the reducerbase
- the result for an empty array- Returns:
- this (to simplify use in expressions)
-
precumulate
Replaces each element with the cumulation of applying the given reducer to all previous values, and returns the total reduction. For example, if the contents are the numbers 1, 2, 3, and the reducer operation adds numbers, then after invocation of this method, the contents would be 0, 1, 3 (that is, 0, 0+1, 0+1+2, and the return value would be 6 (that is, 1+2+3);- Parameters:
reducer
- the reducerbase
- the result for an empty array- Returns:
- the total reduction
-
sort
Sorts the array. Unlike Arrays.sort, this sort does not guarantee that elements with equal keys maintain their relative position in the array.- Parameters:
comparator
- the comparator to use- Returns:
- this (to simplify use in expressions)
-
sort
Sorts the array, assuming all elements are Comparable. Unlike Arrays.sort, this sort does not guarantee that elements with equal keys maintain their relative position in the array.- Returns:
- this (to simplify use in expressions)
- Throws:
ClassCastException
- if any element is not Comparable.
-
removeConsecutiveDuplicates
Removes consecutive elements that are equal, shifting others leftward, and possibly decreasing size. This method may be used after sorting to ensure that this ParallelLongArray contains a set of unique elements.- Returns:
- this (to simplify use in expressions)
-
addAll
Equivalent to asList().addAll but specialized for array arguments and likely to be more efficient.- Parameters:
other
- the elements to add- Returns:
- this (to simplify use in expressions)
-
addAll
Appends all (possibly bounded, filtered, or mapped) elements of the given ParallelDoubleArray, resizing and/or reallocating this array if necessary.- Parameters:
other
- the elements to add- Returns:
- this (to simplify use in expressions)
-
allUniqueElements
Returns a new ParallelLongArray containing only the unique elements of this array (that is, without any duplicates).- Overrides:
allUniqueElements
in classParallelLongArrayWithFilter
- Returns:
- the new ParallelLongArray
-
removeAll
Removes from the array all elements for which the given selector holds.- Parameters:
selector
- the selector- Returns:
- this (to simplify use in expressions)
-
hasAllEqualElements
Returns true if all elements at the same relative positions of this and other array are equal.- Overrides:
hasAllEqualElements
in classParallelLongArrayWithFilter
- Parameters:
other
- the other array- Returns:
- true if equal
-
sum
public long sum()Returns the sum of elements- Overrides:
sum
in classParallelLongArrayWithLongMapping
- Returns:
- the sum of elements
-
cumulateSum
Replaces each element with the running sum- Returns:
- this (to simplify use in expressions)
-
precumulateSum
public long precumulateSum()Replaces each element with its prefix sum- Returns:
- the total sum
-
withBounds
Returns an operation prefix that causes a method to operate only on the elements of the array between firstIndex (inclusive) and upperBound (exclusive).- Parameters:
firstIndex
- the lower bound (inclusive)upperBound
- the upper bound (exclusive)- Returns:
- operation prefix
-
withFilter
Returns an operation prefix that causes a method to operate only on the elements of the array for which the given selector returns true- Parameters:
selector
- the selector- Returns:
- operation prefix
-
withFilter
public ParallelLongArrayWithFilter withFilter(Ops.BinaryLongPredicate selector, ParallelLongArrayWithLongMapping other) Returns an operation prefix that causes a method to operate only on elements for which the given binary selector returns true- Overrides:
withFilter
in classParallelLongArrayWithFilter
- Parameters:
selector
- the selector- Returns:
- operation prefix
-
withIndexedFilter
Returns an operation prefix that causes a method to operate only on elements for which the given indexed selector returns true- Parameters:
selector
- the selector- Returns:
- operation prefix
-
withMapping
Returns an operation prefix that causes a method to operate on mapped elements of the array using the given op.- Parameters:
op
- the op- Returns:
- operation prefix
-
withMapping
Returns an operation prefix that causes a method to operate on mapped elements of the array using the given op.- Parameters:
op
- the op- Returns:
- operation prefix
-
withMapping
Returns an operation prefix that causes a method to operate on mapped elements of the array using the given op.- Parameters:
op
- the op- Returns:
- operation prefix
-
withMapping
public <V,W, ParallelLongArrayWithMapping<W> withMappingX> (Ops.LongAndObjectToObject<? super V, ? extends W> combiner, ParallelArrayWithMapping<X, V> other) Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.- Overrides:
withMapping
in classParallelLongArrayWithLongMapping
- Parameters:
combiner
- the combinerother
- the other array- Returns:
- operation prefix
- Throws:
IllegalArgumentException
- if other array is a filtered view (all filters must precede all mappings).
-
withMapping
public <V> ParallelLongArrayWithMapping<V> withMapping(Ops.LongAndDoubleToObject<? extends V> combiner, ParallelDoubleArrayWithDoubleMapping other) Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.- Overrides:
withMapping
in classParallelLongArrayWithLongMapping
- Parameters:
combiner
- the combinerother
- the other array- Returns:
- operation prefix
- Throws:
IllegalArgumentException
- if other array is a filtered view (all filters must precede all mappings).
-
withMapping
public <V> ParallelLongArrayWithMapping<V> withMapping(Ops.LongAndLongToObject<? extends V> combiner, ParallelLongArrayWithLongMapping other) Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.- Overrides:
withMapping
in classParallelLongArrayWithLongMapping
- Parameters:
combiner
- the combinerother
- the other array- Returns:
- operation prefix
- Throws:
IllegalArgumentException
- if other array is a filtered view (all filters must precede all mappings).
-
withMapping
public <V,W> ParallelLongArrayWithDoubleMapping withMapping(Ops.LongAndObjectToDouble<? super V> combiner, ParallelArrayWithMapping<W, V> other) Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.- Overrides:
withMapping
in classParallelLongArrayWithLongMapping
- Parameters:
combiner
- the combinerother
- the other array- Returns:
- operation prefix
- Throws:
IllegalArgumentException
- if other array is a filtered view (all filters must precede all mappings).
-
withMapping
public ParallelLongArrayWithDoubleMapping withMapping(Ops.LongAndDoubleToDouble combiner, ParallelDoubleArrayWithDoubleMapping other) Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.- Overrides:
withMapping
in classParallelLongArrayWithLongMapping
- Parameters:
combiner
- the combinerother
- the other array- Returns:
- operation prefix
- Throws:
IllegalArgumentException
- if other array is a filtered view (all filters must precede all mappings).
-
withMapping
public ParallelLongArrayWithDoubleMapping withMapping(Ops.LongAndLongToDouble combiner, ParallelLongArrayWithLongMapping other) Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.- Overrides:
withMapping
in classParallelLongArrayWithLongMapping
- Parameters:
combiner
- the combinerother
- the other array- Returns:
- operation prefix
- Throws:
IllegalArgumentException
- if other array is a filtered view (all filters must precede all mappings).
-
withMapping
public <V,W> ParallelLongArrayWithLongMapping withMapping(Ops.LongAndObjectToLong<? super V> combiner, ParallelArrayWithMapping<W, V> other) Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.- Overrides:
withMapping
in classParallelLongArrayWithLongMapping
- Parameters:
combiner
- the combinerother
- the other array- Returns:
- operation prefix
- Throws:
IllegalArgumentException
- if other array is a filtered view (all filters must precede all mappings).
-
withMapping
public ParallelLongArrayWithLongMapping withMapping(Ops.LongAndDoubleToLong combiner, ParallelDoubleArrayWithDoubleMapping other) Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.- Overrides:
withMapping
in classParallelLongArrayWithLongMapping
- Parameters:
combiner
- the combinerother
- the other array- Returns:
- operation prefix
- Throws:
IllegalArgumentException
- if other array is a filtered view (all filters must precede all mappings).
-
withMapping
public ParallelLongArrayWithLongMapping withMapping(Ops.BinaryLongOp combiner, ParallelLongArrayWithLongMapping other) Returns an operation prefix that causes a method to operate on binary mappings of this array and the other array.- Overrides:
withMapping
in classParallelLongArrayWithLongMapping
- Parameters:
combiner
- the combinerother
- the other array- Returns:
- operation prefix
- Throws:
IllegalArgumentException
- if other array is a filtered view (all filters must precede all mappings).
-
withIndexedMapping
public <U> ParallelLongArrayWithMapping<U> withIndexedMapping(Ops.IntAndLongToObject<? extends U> mapper) Returns an operation prefix that causes a method to operate on mappings of this array using the given mapper that accepts as arguments an element's current index and value, and produces a new value.- Parameters:
mapper
- the mapper- Returns:
- operation prefix
-
withIndexedMapping
Returns an operation prefix that causes a method to operate on mappings of this array using the given mapper that accepts as arguments an element's current index and value, and produces a new value.- Parameters:
mapper
- the mapper- Returns:
- operation prefix
-
withIndexedMapping
Returns an operation prefix that causes a method to operate on mappings of this array using the given mapper that accepts as arguments an element's current index and value, and produces a new value.- Parameters:
mapper
- the mapper- Returns:
- operation prefix
-
iterator
Returns an iterator stepping through each element of the array up to the current limit. This iterator does not support the remove operation. However, a full ListIterator supporting add, remove, and set operations is available viaasList()
.- Returns:
- an iterator stepping through each element.
-
asList
Returns a view of this ParallelLongArray as a List. This List has the same structural and performance characteristics asArrayList
, and may be used to modify, replace or extend the bounds of the array underlying this ParallelLongArray. The methods supported by this list view are not in general implemented as parallel operations. This list is also not itself thread-safe. In particular, performing list updates while other parallel operations are in progress has undefined (and surely undesired) effects.- Returns:
- a list view
-
size
public int size()Returns the effective size of the underlying array. The effective size is the current limit, if used (seesetLimit(int)
), or the length of the array otherwise.- Overrides:
size
in classAbstractParallelAnyArray
- Returns:
- the effective size of array
-
getArray
public long[] getArray()Returns the underlying array used for computations- Returns:
- the array
-
get
public long get(int i) Returns the element of the array at the given index- Parameters:
i
- the index- Returns:
- the element of the array at the given index
-
set
public void set(int i, long x) Sets the element of the array at the given index to the given value- Parameters:
i
- the indexx
- the value
-
toString
Equivalent to asList().toString() -
setLimit
public final void setLimit(int newLimit) Ensures that the underlying array can be accessed up to the given upper bound, reallocating and copying the underlying array to expand if necessary. Or, if the given limit is less than the length of the underlying array, causes computations to ignore elements past the given limit.- Parameters:
newLimit
- the new upper bound- Throws:
IllegalArgumentException
- if newLimit less than zero.
-