public final class ArrayUtil extends Object
Modifier and Type | Field and Description |
---|---|
static int |
MAX_ARRAY_LENGTH
Maximum length for an array (Integer.MAX_VALUE - RamUsageEstimator.NUM_BYTES_ARRAY_HEADER).
|
Modifier and Type | Method and Description |
---|---|
static byte[] |
grow(byte[] array) |
static byte[] |
grow(byte[] array,
int minSize) |
static char[] |
grow(char[] array) |
static char[] |
grow(char[] array,
int minSize) |
static double[] |
grow(double[] array) |
static double[] |
grow(double[] array,
int minSize) |
static float[] |
grow(float[] array) |
static float[] |
grow(float[] array,
int minSize) |
static int[] |
grow(int[] array) |
static int[] |
grow(int[] array,
int minSize) |
static long[] |
grow(long[] array) |
static long[] |
grow(long[] array,
int minSize) |
static short[] |
grow(short[] array) |
static short[] |
grow(short[] array,
int minSize) |
static <T> T[] |
grow(T[] array,
int minSize) |
static int |
hashCode(char[] array,
int start,
int end)
Returns hash of chars in range start (inclusive) to
end (inclusive)
|
static <T extends Comparable<? super T>> |
introSort(T[] a)
Sorts the given array in natural order.
|
static <T> void |
introSort(T[] a,
Comparator<? super T> comp)
Sorts the given array using the
Comparator . |
static <T extends Comparable<? super T>> |
introSort(T[] a,
int fromIndex,
int toIndex)
Sorts the given array slice in natural order.
|
static <T> void |
introSort(T[] a,
int fromIndex,
int toIndex,
Comparator<? super T> comp)
Sorts the given array slice using the
Comparator . |
static int |
oversize(int minTargetSize,
int bytesPerElement)
Returns an array size >= minTargetSize, generally
over-allocating exponentially to achieve amortized
linear-time cost as the array grows.
|
static int |
parseInt(char[] chars,
int offset,
int len)
Parses a char array into an int.
|
static int |
parseInt(char[] chars,
int offset,
int len,
int radix)
Parses the string argument as if it was an int value and returns the
result.
|
static <T> void |
select(T[] arr,
int from,
int to,
int k,
Comparator<? super T> comparator)
Reorganize
arr[from:to[ so that the element at offset k is at the
same position as if arr[from:to[ was sorted, and all elements on
its left are less than or equal to it, and all elements on its right are
greater than or equal to it. |
static <T> void |
swap(T[] arr,
int i,
int j)
Swap values stored in slots
i and j |
static <T extends Comparable<? super T>> |
timSort(T[] a)
Sorts the given array in natural order.
|
static <T> void |
timSort(T[] a,
Comparator<? super T> comp)
Sorts the given array using the
Comparator . |
static <T extends Comparable<? super T>> |
timSort(T[] a,
int fromIndex,
int toIndex)
Sorts the given array slice in natural order.
|
static <T> void |
timSort(T[] a,
int fromIndex,
int toIndex,
Comparator<? super T> comp)
Sorts the given array slice using the
Comparator . |
public static final int MAX_ARRAY_LENGTH
public static int parseInt(char[] chars, int offset, int len) throws NumberFormatException
chars
- the character arrayoffset
- The offset into the arraylen
- The lengthNumberFormatException
- if it can't parsepublic static int parseInt(char[] chars, int offset, int len, int radix) throws NumberFormatException
chars
- a string representation of an int quantity.radix
- the base to use for conversion.NumberFormatException
- if the argument could not be parsed as an int quantity.public static int oversize(int minTargetSize, int bytesPerElement)
minTargetSize
- Minimum required value to be returned.bytesPerElement
- Bytes used by each element of
the array. See constants in RamUsageEstimator
.public static <T> T[] grow(T[] array, int minSize)
public static short[] grow(short[] array, int minSize)
public static short[] grow(short[] array)
public static float[] grow(float[] array, int minSize)
public static float[] grow(float[] array)
public static double[] grow(double[] array, int minSize)
public static double[] grow(double[] array)
public static int[] grow(int[] array, int minSize)
public static int[] grow(int[] array)
public static long[] grow(long[] array, int minSize)
public static long[] grow(long[] array)
public static byte[] grow(byte[] array, int minSize)
public static byte[] grow(byte[] array)
public static char[] grow(char[] array, int minSize)
public static char[] grow(char[] array)
public static int hashCode(char[] array, int start, int end)
public static <T> void swap(T[] arr, int i, int j)
i
and j
public static <T> void introSort(T[] a, int fromIndex, int toIndex, Comparator<? super T> comp)
Comparator
. This method uses the intro sort
algorithm, but falls back to insertion sort for small arrays.fromIndex
- start index (inclusive)toIndex
- end index (exclusive)public static <T> void introSort(T[] a, Comparator<? super T> comp)
Comparator
. This method uses the intro sort
algorithm, but falls back to insertion sort for small arrays.public static <T extends Comparable<? super T>> void introSort(T[] a, int fromIndex, int toIndex)
fromIndex
- start index (inclusive)toIndex
- end index (exclusive)public static <T extends Comparable<? super T>> void introSort(T[] a)
public static <T> void timSort(T[] a, int fromIndex, int toIndex, Comparator<? super T> comp)
Comparator
. This method uses the Tim sort
algorithm, but falls back to binary sort for small arrays.fromIndex
- start index (inclusive)toIndex
- end index (exclusive)public static <T> void timSort(T[] a, Comparator<? super T> comp)
Comparator
. This method uses the Tim sort
algorithm, but falls back to binary sort for small arrays.public static <T extends Comparable<? super T>> void timSort(T[] a, int fromIndex, int toIndex)
fromIndex
- start index (inclusive)toIndex
- end index (exclusive)public static <T extends Comparable<? super T>> void timSort(T[] a)
public static <T> void select(T[] arr, int from, int to, int k, Comparator<? super T> comparator)
arr[from:to[
so that the element at offset k is at the
same position as if arr[from:to[
was sorted, and all elements on
its left are less than or equal to it, and all elements on its right are
greater than or equal to it.
This runs in linear time on average and in n log(n)
time in the
worst case.Copyright © 2000-2018 Apache Software Foundation. All Rights Reserved.