public final class BooleanBigArrays
extends java.lang.Object
Note that BinIO
and TextIO
contain several methods that make it possible to load and save big arrays of primitive types as sequences
of elements in DataInput
format (i.e., not as objects) or as sequences of lines of text.
ForkJoinPool
that the operation should run in. For example,
something along the lines of "poolToParallelSortIn.invoke(() -> parallelQuickSort(arrayToSort))
"
will run the parallel sort in poolToParallelSortIn
instead of the default pool.BigArrays
Modifier and Type | Field and Description |
---|---|
static boolean[][] |
DEFAULT_EMPTY_BIG_ARRAY
A static, final, empty big array to be used as default big array in allocations.
|
static boolean[][] |
EMPTY_BIG_ARRAY
A static, final, empty big array.
|
static Hash.Strategy |
HASH_STRATEGY
A type-specific content-based hash strategy for big arrays.
|
Modifier and Type | Method and Description |
---|---|
static boolean[][] |
copy(boolean[][] array)
Deprecated.
Please use the version in
BigArrays . |
static void |
copy(boolean[][] srcArray,
long srcPos,
boolean[][] destArray,
long destPos,
long length)
Deprecated.
Please use the version in
BigArrays . |
static boolean[][] |
copy(boolean[][] array,
long offset,
long length)
Deprecated.
Please use the version in
BigArrays . |
static void |
copyFromBig(boolean[][] srcArray,
long srcPos,
boolean[] destArray,
int destPos,
int length)
Deprecated.
Please use the version in
BigArrays . |
static void |
copyToBig(boolean[] srcArray,
int srcPos,
boolean[][] destArray,
long destPos,
long length)
Deprecated.
Please use the version in
BigArrays . |
static boolean[][] |
ensureCapacity(boolean[][] array,
long length)
Deprecated.
Please use the version in
BigArrays . |
static boolean[][] |
ensureCapacity(boolean[][] array,
long length,
long preserve)
Deprecated.
Please use the version in
BigArrays . |
static void |
ensureFromTo(boolean[][] a,
long from,
long to)
Deprecated.
Please use the version in
BigArrays . |
static void |
ensureOffsetLength(boolean[][] a,
long offset,
long length)
Deprecated.
Please use the version in
BigArrays . |
static void |
ensureSameLength(boolean[][] a,
boolean[][] b)
Deprecated.
Please use the version in
BigArrays . |
static boolean |
equals(boolean[][] a1,
boolean[][] a2)
Deprecated.
Please use the version in
BigArrays . |
static void |
fill(boolean[][] array,
boolean value)
Deprecated.
Please use the version in
BigArrays . |
static void |
fill(boolean[][] array,
long from,
long to,
boolean value)
Deprecated.
Please use the version in
BigArrays . |
static boolean[][] |
forceCapacity(boolean[][] array,
long length,
long preserve)
Deprecated.
Please use the version in
BigArrays . |
static boolean |
get(boolean[][] array,
long index)
Deprecated.
Please use the version in
BigArrays . |
static boolean[][] |
grow(boolean[][] array,
long length)
Deprecated.
Please use the version in
BigArrays . |
static boolean[][] |
grow(boolean[][] array,
long length,
long preserve)
Deprecated.
Please use the version in
BigArrays . |
static long |
length(boolean[][] array)
Deprecated.
Please use the version in
BigArrays . |
static boolean[][] |
newBigArray(long length)
Creates a new big array.
|
static void |
parallelQuickSort(boolean[][] x)
Sorts a big array according to the natural ascending order using a parallel quicksort.
|
static void |
parallelQuickSort(boolean[][] x,
BooleanComparator comp)
Sorts a big array according to the order induced by the specified
comparator using a parallel quicksort.
|
static void |
parallelQuickSort(boolean[][] x,
long from,
long to)
Sorts the specified range of elements according to the natural ascending order using a parallel quicksort.
|
static void |
parallelQuickSort(boolean[][] x,
long from,
long to,
BooleanComparator comp)
Sorts the specified range of elements according to the order induced by the specified
comparator using a parallel quicksort.
|
static void |
quickSort(boolean[][] x)
Sorts the specified big array according to the natural ascending order using quicksort.
|
static void |
quickSort(boolean[][] x,
BooleanComparator comp)
Sorts the specified big array according to the order induced by the specified
comparator using quicksort.
|
static void |
quickSort(boolean[][] x,
long from,
long to)
Sorts the specified range of elements according to the natural ascending order using quicksort.
|
static void |
quickSort(boolean[][] x,
long from,
long to,
BooleanComparator comp)
Sorts the specified range of elements according to the order induced by the specified
comparator using quicksort.
|
static void |
set(boolean[][] array,
long index,
boolean value)
Deprecated.
Please use the version in
BigArrays . |
static boolean[][] |
setLength(boolean[][] array,
long length)
Deprecated.
Please use the version in
BigArrays . |
static boolean[][] |
shuffle(boolean[][] a,
long from,
long to,
java.util.Random random)
Shuffles the specified big array fragment using the specified pseudorandom number generator.
|
static boolean[][] |
shuffle(boolean[][] a,
java.util.Random random)
Shuffles the specified big array using the specified pseudorandom number generator.
|
static void |
swap(boolean[][] array,
long first,
long second)
Deprecated.
Please use the version in
BigArrays . |
static java.lang.String |
toString(boolean[][] a)
Deprecated.
|
static boolean[][] |
trim(boolean[][] array,
long length)
Deprecated.
Please use the version in
BigArrays . |
static boolean[][] |
wrap(boolean[] array)
Deprecated.
Please use the version in
BigArrays . |
public static final boolean[][] EMPTY_BIG_ARRAY
public static final boolean[][] DEFAULT_EMPTY_BIG_ARRAY
EMPTY_BIG_ARRAY
makes it possible to have different
behaviors depending on whether the user required an empty allocation, or we are
just lazily delaying allocation.ArrayList
public static final Hash.Strategy HASH_STRATEGY
This hash strategy may be used in custom hash collections whenever keys are
big arrays, and they must be considered equal by content. This strategy
will handle null
correctly, and it is serializable.
@Deprecated public static boolean get(boolean[][] array, long index)
BigArrays
.array
- a big array.index
- a position in the big array.@Deprecated public static void set(boolean[][] array, long index, boolean value)
BigArrays
.array
- a big array.index
- a position in the big array.value
- the new value for the array element at the specified position.@Deprecated public static void swap(boolean[][] array, long first, long second)
BigArrays
.array
- a big array.first
- a position in the big array.second
- a position in the big array.@Deprecated public static long length(boolean[][] array)
BigArrays
.array
- a big array.@Deprecated public static void copy(boolean[][] srcArray, long srcPos, boolean[][] destArray, long destPos, long length)
BigArrays
.srcArray
- the source big array.srcPos
- the starting position in the source big array.destArray
- the destination big array.destPos
- the starting position in the destination data.length
- the number of elements to be copied.@Deprecated public static void copyFromBig(boolean[][] srcArray, long srcPos, boolean[] destArray, int destPos, int length)
BigArrays
.srcArray
- the source big array.srcPos
- the starting position in the source big array.destArray
- the destination array.destPos
- the starting position in the destination data.length
- the number of elements to be copied.@Deprecated public static void copyToBig(boolean[] srcArray, int srcPos, boolean[][] destArray, long destPos, long length)
BigArrays
.srcArray
- the source array.srcPos
- the starting position in the source array.destArray
- the destination big array.destPos
- the starting position in the destination data.length
- the number of elements to be copied.public static boolean[][] newBigArray(long length)
length
- the length of the new big array.@Deprecated public static boolean[][] wrap(boolean[] array)
BigArrays
.Note that the returned big array might contain as a segment the original array.
array
- an array.array
.@Deprecated public static boolean[][] ensureCapacity(boolean[][] array, long length)
BigArrays
.If you cannot foresee whether this big array will need again to be
enlarged, you should probably use grow()
instead.
Warning: the returned array might use part of the segments of the original array, which must be considered read-only after calling this method.
array
- a big array.length
- the new minimum length for this big array.array
, if it contains length
entries or more; otherwise,
a big array with length
entries whose first length(array)
entries are the same as those of array
.@Deprecated public static boolean[][] forceCapacity(boolean[][] array, long length, long preserve)
BigArrays
.Warning: the returned array might use part of the segments of the original array, which must be considered read-only after calling this method.
array
- a big array.length
- the new minimum length for this big array.preserve
- the number of elements of the big array that must be preserved in case a new allocation is necessary.length
entries whose first preserve
entries are the same as those of array
.@Deprecated public static boolean[][] ensureCapacity(boolean[][] array, long length, long preserve)
BigArrays
.Warning: the returned array might use part of the segments of the original array, which must be considered read-only after calling this method.
array
- a big array.length
- the new minimum length for this big array.preserve
- the number of elements of the big array that must be preserved in case a new allocation is necessary.array
, if it can contain length
entries or more; otherwise,
a big array with length
entries whose first preserve
entries are the same as those of array
.@Deprecated public static boolean[][] grow(boolean[][] array, long length)
BigArrays
.If you want complete control on the big array growth, you
should probably use ensureCapacity()
instead.
Warning: the returned array might use part of the segments of the original array, which must be considered read-only after calling this method.
array
- a big array.length
- the new minimum length for this big array.array
, if it can contain length
entries; otherwise, a big array with
max(length
,length(array)
/φ) entries whose first
length(array)
entries are the same as those of array
.@Deprecated public static boolean[][] grow(boolean[][] array, long length, long preserve)
BigArrays
.If you want complete control on the big array growth, you
should probably use ensureCapacity()
instead.
Warning: the returned array might use part of the segments of the original array, which must be considered read-only after calling this method.
array
- a big array.length
- the new minimum length for this big array.preserve
- the number of elements of the big array that must be preserved in case a new allocation is necessary.array
, if it can contain length
entries; otherwise, a big array with
max(length
,length(array)
/φ) entries whose first
preserve
entries are the same as those of array
.@Deprecated public static boolean[][] trim(boolean[][] array, long length)
BigArrays
.Warning: the returned array might use part of the segments of the original array, which must be considered read-only after calling this method.
array
- a big array.length
- the new maximum length for the big array.array
, if it contains length
entries or less; otherwise, a big array with
length
entries whose entries are the same as
the first length
entries of array
.@Deprecated public static boolean[][] setLength(boolean[][] array, long length)
BigArrays
.Warning: the returned array might use part of the segments of the original array, which must be considered read-only after calling this method.
array
- a big array.length
- the new length for the big array.array
, if it contains exactly length
entries; otherwise, if it contains more than
length
entries, a big array with length
entries
whose entries are the same as the first length
entries of
array
; otherwise, a big array with length
entries
whose first length(array)
entries are the same as those of
array
.@Deprecated public static boolean[][] copy(boolean[][] array, long offset, long length)
BigArrays
.array
- a big array.offset
- the first element to copy.length
- the number of elements to copy.length
elements of array
starting at offset
.@Deprecated public static boolean[][] copy(boolean[][] array)
BigArrays
.array
- a big array.array
.@Deprecated public static void fill(boolean[][] array, boolean value)
BigArrays
.This method uses a backward loop. It is significantly faster than the corresponding
method in Arrays
.
array
- a big array.value
- the new value for all elements of the big array.@Deprecated public static void fill(boolean[][] array, long from, long to, boolean value)
BigArrays
.If possible (i.e., from
is 0) this method uses a
backward loop. In this case, it is significantly faster than the
corresponding method in Arrays
.
array
- a big array.from
- the starting index of the portion to fill.to
- the end index of the portion to fill.value
- the new value for all elements of the specified portion of the big array.@Deprecated public static boolean equals(boolean[][] a1, boolean[][] a2)
BigArrays
.This method uses a backward loop. It is significantly faster than the corresponding
method in Arrays
.
a1
- a big array.a2
- another big array.@Deprecated public static java.lang.String toString(boolean[][] a)
@Deprecated public static void ensureFromTo(boolean[][] a, long from, long to)
BigArrays
.This method may be used whenever a big array range check is needed.
a
- a big array.from
- a start index (inclusive).to
- an end index (inclusive).java.lang.IllegalArgumentException
- if from
is greater than to
.java.lang.ArrayIndexOutOfBoundsException
- if from
or to
are greater than the big array length or negative.@Deprecated public static void ensureOffsetLength(boolean[][] a, long offset, long length)
BigArrays
.This method may be used whenever a big array range check is needed.
a
- a big array.offset
- a start index.length
- a length (the number of elements in the range).java.lang.IllegalArgumentException
- if length
is negative.java.lang.ArrayIndexOutOfBoundsException
- if offset
is negative or offset
+length
is greater than the big array length.@Deprecated public static void ensureSameLength(boolean[][] a, boolean[][] b)
BigArrays
.a
- a big array.b
- another big array.java.lang.IllegalArgumentException
- if the two argument arrays are not of the same length.public static void quickSort(boolean[][] x, long from, long to, BooleanComparator comp)
The sorting algorithm is a tuned quicksort adapted from Jon L. Bentley and M. Douglas McIlroy, “Engineering a Sort Function”, Software: Practice and Experience, 23(11), pages 1249−1265, 1993.
x
- the big array to be sorted.from
- the index of the first element (inclusive) to be sorted.to
- the index of the last element (exclusive) to be sorted.comp
- the comparator to determine the sorting order.public static void quickSort(boolean[][] x, BooleanComparator comp)
The sorting algorithm is a tuned quicksort adapted from Jon L. Bentley and M. Douglas McIlroy, “Engineering a Sort Function”, Software: Practice and Experience, 23(11), pages 1249−1265, 1993.
x
- the big array to be sorted.comp
- the comparator to determine the sorting order.public static void quickSort(boolean[][] x, long from, long to)
The sorting algorithm is a tuned quicksort adapted from Jon L. Bentley and M. Douglas McIlroy, “Engineering a Sort Function”, Software: Practice and Experience, 23(11), pages 1249−1265, 1993.
x
- the big array to be sorted.from
- the index of the first element (inclusive) to be sorted.to
- the index of the last element (exclusive) to be sorted.public static void quickSort(boolean[][] x)
The sorting algorithm is a tuned quicksort adapted from Jon L. Bentley and M. Douglas McIlroy, “Engineering a Sort Function”, Software: Practice and Experience, 23(11), pages 1249−1265, 1993.
x
- the big array to be sorted.public static void parallelQuickSort(boolean[][] x, long from, long to)
The sorting algorithm is a tuned quicksort adapted from Jon L. Bentley and M. Douglas McIlroy, “Engineering a Sort Function”, Software: Practice and Experience, 23(11), pages 1249−1265, 1993.
x
- the big array to be sorted.from
- the index of the first element (inclusive) to be sorted.to
- the index of the last element (exclusive) to be sorted.public static void parallelQuickSort(boolean[][] x)
The sorting algorithm is a tuned quicksort adapted from Jon L. Bentley and M. Douglas McIlroy, “Engineering a Sort Function”, Software: Practice and Experience, 23(11), pages 1249−1265, 1993.
x
- the big array to be sorted.public static void parallelQuickSort(boolean[][] x, long from, long to, BooleanComparator comp)
The sorting algorithm is a tuned quicksort adapted from Jon L. Bentley and M. Douglas McIlroy, “Engineering a Sort Function”, Software: Practice and Experience, 23(11), pages 1249−1265, 1993.
x
- the big array to be sorted.from
- the index of the first element (inclusive) to be sorted.to
- the index of the last element (exclusive) to be sorted.comp
- the comparator to determine the sorting order.public static void parallelQuickSort(boolean[][] x, BooleanComparator comp)
The sorting algorithm is a tuned quicksort adapted from Jon L. Bentley and M. Douglas McIlroy, “Engineering a Sort Function”, Software: Practice and Experience, 23(11), pages 1249−1265, 1993.
x
- the big array to be sorted.comp
- the comparator to determine the sorting order.public static boolean[][] shuffle(boolean[][] a, long from, long to, java.util.Random random)
a
- the big array to be shuffled.from
- the index of the first element (inclusive) to be shuffled.to
- the index of the last element (exclusive) to be shuffled.random
- a pseudorandom number generator.a
.public static boolean[][] shuffle(boolean[][] a, java.util.Random random)
a
- the big array to be shuffled.random
- a pseudorandom number generator.a
.