public class Arrays extends Object
Arrays
contains static methods which operate on arrays.Modifier and Type | Method and Description |
---|---|
static List |
asList(Object[] array)
Returns a
List of the objects in the specified array. |
static int |
binarySearch(byte[] array,
byte value)
Performs a binary search for the specified element in the specified
ascending sorted array.
|
static int |
binarySearch(char[] array,
char value)
Performs a binary search for the specified element in the specified
ascending sorted array.
|
static int |
binarySearch(double[] array,
double value)
Performs a binary search for the specified element in the specified
ascending sorted array.
|
static int |
binarySearch(float[] array,
float value)
Performs a binary search for the specified element in the specified
ascending sorted array.
|
static int |
binarySearch(int[] array,
int value)
Performs a binary search for the specified element in the specified
ascending sorted array.
|
static int |
binarySearch(long[] array,
long value)
Performs a binary search for the specified element in the specified
ascending sorted array.
|
static int |
binarySearch(Object[] array,
Object object)
Performs a binary search for the specified element in the specified
ascending sorted array.
|
static int |
binarySearch(Object[] array,
Object object,
Comparator comparator)
Performs a binary search for the specified element in the specified
ascending sorted array using the
Comparator to compare elements. |
static int |
binarySearch(short[] array,
short value)
Performs a binary search for the specified element in the specified
ascending sorted array.
|
static boolean |
deepEquals(Object[] array1,
Object[] array2)
Returns
true if the two given arrays are deeply equal to one another. |
static int |
deepHashCode(Object[] array)
Returns a hash code based on the "deep contents" of the given array.
|
static boolean |
equals(boolean[] array1,
boolean[] array2)
Compares the two arrays.
|
static boolean |
equals(byte[] array1,
byte[] array2)
Compares the two arrays.
|
static boolean |
equals(char[] array1,
char[] array2)
Compares the two arrays.
|
static boolean |
equals(double[] array1,
double[] array2)
Compares the two arrays.
|
static boolean |
equals(float[] array1,
float[] array2)
Compares the two arrays.
|
static boolean |
equals(int[] array1,
int[] array2)
Compares the two arrays.
|
static boolean |
equals(long[] array1,
long[] array2)
Compares the two arrays.
|
static boolean |
equals(Object[] array1,
Object[] array2)
Compares the two arrays.
|
static boolean |
equals(short[] array1,
short[] array2)
Compares the two arrays.
|
static void |
fill(boolean[] array,
boolean value)
Fills the specified array with the specified element.
|
static void |
fill(boolean[] array,
int start,
int end,
boolean value)
Fills the specified range in the array with the specified element.
|
static void |
fill(byte[] array,
byte value)
Fills the specified array with the specified element.
|
static void |
fill(byte[] array,
int start,
int end,
byte value)
Fills the specified range in the array with the specified element.
|
static void |
fill(char[] array,
char value)
Fills the specified array with the specified element.
|
static void |
fill(char[] array,
int start,
int end,
char value)
Fills the specified range in the array with the specified element.
|
static void |
fill(double[] array,
double value)
Fills the specified array with the specified element.
|
static void |
fill(double[] array,
int start,
int end,
double value)
Fills the specified range in the array with the specified element.
|
static void |
fill(float[] array,
float value)
Fills the specified array with the specified element.
|
static void |
fill(float[] array,
int start,
int end,
float value)
Fills the specified range in the array with the specified element.
|
static void |
fill(int[] array,
int value)
Fills the specified array with the specified element.
|
static void |
fill(int[] array,
int start,
int end,
int value)
Fills the specified range in the array with the specified element.
|
static void |
fill(long[] array,
int start,
int end,
long value)
Fills the specified range in the array with the specified element.
|
static void |
fill(long[] array,
long value)
Fills the specified array with the specified element.
|
static void |
fill(Object[] array,
int start,
int end,
Object value)
Fills the specified range in the array with the specified element.
|
static void |
fill(Object[] array,
Object value)
Fills the specified array with the specified element.
|
static void |
fill(short[] array,
int start,
int end,
short value)
Fills the specified range in the array with the specified element.
|
static void |
fill(short[] array,
short value)
Fills the specified array with the specified element.
|
static int |
hashCode(boolean[] array)
Returns a hash code based on the contents of the given array.
|
static int |
hashCode(byte[] array)
Returns a hash code based on the contents of the given array.
|
static int |
hashCode(char[] array)
Returns a hash code based on the contents of the given array.
|
static int |
hashCode(double[] array)
Returns a hash code based on the contents of the given array.
|
static int |
hashCode(float[] array)
Returns a hash code based on the contents of the given array.
|
static int |
hashCode(int[] array)
Returns a hash code based on the contents of the given array.
|
static int |
hashCode(long[] array)
Returns a hash code based on the contents of the given array.
|
static int |
hashCode(Object[] array)
Returns a hash code based on the contents of the given array.
|
static int |
hashCode(short[] array)
Returns a hash code based on the contents of the given array.
|
static void |
sort(byte[] array)
Sorts the specified array in ascending numerical order.
|
static void |
sort(byte[] array,
int start,
int end)
Sorts the specified range in the array in ascending numerical order.
|
static void |
sort(char[] array)
Sorts the specified array in ascending numerical order.
|
static void |
sort(char[] array,
int start,
int end)
Sorts the specified range in the array in ascending numerical order.
|
static void |
sort(double[] array)
Sorts the specified array in ascending numerical order.
|
static void |
sort(double[] array,
int start,
int end)
Sorts the specified range in the array in ascending numerical order.
|
static void |
sort(float[] array)
Sorts the specified array in ascending numerical order.
|
static void |
sort(float[] array,
int start,
int end)
Sorts the specified range in the array in ascending numerical order.
|
static void |
sort(int[] array)
Sorts the specified array in ascending numerical order.
|
static void |
sort(int[] array,
int start,
int end)
Sorts the specified range in the array in ascending numerical order.
|
static void |
sort(long[] array)
Sorts the specified array in ascending numerical order.
|
static void |
sort(long[] array,
int start,
int end)
Sorts the specified range in the array in ascending numerical order.
|
static void |
sort(Object[] array)
Sorts the specified array in ascending natural order.
|
static void |
sort(Object[] array,
Comparator comparator)
Sorts the specified array using the specified
Comparator . |
static void |
sort(Object[] array,
int start,
int end)
Sorts the specified range in the array in ascending natural order.
|
static void |
sort(Object[] array,
int start,
int end,
Comparator comparator)
Sorts the specified range in the array using the specified
Comparator . |
static void |
sort(short[] array)
Sorts the specified array in ascending numerical order.
|
static void |
sort(short[] array,
int start,
int end)
Sorts the specified range in the array in ascending numerical order.
|
public static List asList(Object[] array)
List
of the objects in the specified array. The size of the
List
cannot be modified, i.e. adding and removing are unsupported, but
the elements can be set. Setting an element modifies the underlying
array.array
- the array.List
of the elements of the specified array.public static int binarySearch(byte[] array, byte value)
array
- the sorted byte
array to search.value
- the byte
element to find.-index - 1
where the element would be inserted.public static int binarySearch(char[] array, char value)
array
- the sorted char
array to search.value
- the char
element to find.-index - 1
where the element would be inserted.public static int binarySearch(double[] array, double value)
array
- the sorted double
array to search.value
- the double
element to find.-index - 1
where the element would be inserted.public static int binarySearch(float[] array, float value)
array
- the sorted float
array to search.value
- the float
element to find.-index - 1
where the element would be inserted.public static int binarySearch(int[] array, int value)
array
- the sorted int
array to search.value
- the int
element to find.-index - 1
where the element would be inserted.public static int binarySearch(long[] array, long value)
array
- the sorted long
array to search.value
- the long
element to find.-index - 1
where the element would be inserted.public static int binarySearch(Object[] array, Object object)
array
- the sorted Object
array to search.object
- the Object
element to find.-index - 1
where the element would be inserted.ClassCastException
- if an element in the array or the search element does not
implement Comparable
, or cannot be compared to each other.public static int binarySearch(Object[] array, Object object, Comparator comparator)
Comparator
to compare elements.
Searching in an unsorted array has an undefined result. It's also
undefined which element is found if there are multiple occurrences of the
same element.array
- the sorted array to searchobject
- the element to findcomparator
- the Comparator
sued to compare the elements.-index - 1
where the element would be inserted.ClassCastException
- if an element in the array cannot be compared to the search element
using the Comparator
.public static int binarySearch(short[] array, short value)
array
- the sorted short
array to search.value
- the short
element to find.-index - 1
where the element would be inserted.public static void fill(byte[] array, byte value)
array
- the byte
array to fill.value
- the byte
element.public static void fill(byte[] array, int start, int end, byte value)
array
- the byte
array to fill.start
- the first index to fill.end
- the last + 1 index to fill.value
- the byte
element.IllegalArgumentException
- if start > end
.ArrayIndexOutOfBoundsException
- if start < 0
or end > array.length
.public static void fill(short[] array, short value)
array
- the short
array to fill.value
- the short
element.public static void fill(short[] array, int start, int end, short value)
array
- the short
array to fill.start
- the first index to fill.end
- the last + 1 index to fill.value
- the short
element.IllegalArgumentException
- if start > end
.ArrayIndexOutOfBoundsException
- if start < 0
or end > array.length
.public static void fill(char[] array, char value)
array
- the char
array to fill.value
- the char
element.public static void fill(char[] array, int start, int end, char value)
array
- the char
array to fill.start
- the first index to fill.end
- the last + 1 index to fill.value
- the char
element.IllegalArgumentException
- if start > end
.ArrayIndexOutOfBoundsException
- if start < 0
or end > array.length
.public static void fill(int[] array, int value)
array
- the int
array to fill.value
- the int
element.public static void fill(int[] array, int start, int end, int value)
array
- the int
array to fill.start
- the first index to fill.end
- the last + 1 index to fill.value
- the int
element.IllegalArgumentException
- if start > end
.ArrayIndexOutOfBoundsException
- if start < 0
or end > array.length
.public static void fill(long[] array, long value)
array
- the long
array to fill.value
- the long
element.public static void fill(long[] array, int start, int end, long value)
array
- the long
array to fill.start
- the first index to fill.end
- the last + 1 index to fill.value
- the long
element.IllegalArgumentException
- if start > end
.ArrayIndexOutOfBoundsException
- if start < 0
or end > array.length
.public static void fill(float[] array, float value)
array
- the float
array to fill.value
- the float
element.public static void fill(float[] array, int start, int end, float value)
array
- the float
array to fill.start
- the first index to fill.end
- the last + 1 index to fill.value
- the float
element.IllegalArgumentException
- if start > end
.ArrayIndexOutOfBoundsException
- if start < 0
or end > array.length
.public static void fill(double[] array, double value)
array
- the double
array to fill.value
- the double
element.public static void fill(double[] array, int start, int end, double value)
array
- the double
array to fill.start
- the first index to fill.end
- the last + 1 index to fill.value
- the double
element.IllegalArgumentException
- if start > end
.ArrayIndexOutOfBoundsException
- if start < 0
or end > array.length
.public static void fill(boolean[] array, boolean value)
array
- the boolean
array to fill.value
- the boolean
element.public static void fill(boolean[] array, int start, int end, boolean value)
array
- the boolean
array to fill.start
- the first index to fill.end
- the last + 1 index to fill.value
- the boolean
element.IllegalArgumentException
- if start > end
.ArrayIndexOutOfBoundsException
- if start < 0
or end > array.length
.public static void fill(Object[] array, Object value)
array
- the Object
array to fill.value
- the Object
element.public static void fill(Object[] array, int start, int end, Object value)
array
- the Object
array to fill.start
- the first index to fill.end
- the last + 1 index to fill.value
- the Object
element.IllegalArgumentException
- if start > end
.ArrayIndexOutOfBoundsException
- if start < 0
or end > array.length
.public static int hashCode(boolean[] array)
boolean
arrays a
and b
, if
Arrays.equals(a, b)
returns true
, it means
that the return value of Arrays.hashCode(a)
equals Arrays.hashCode(b)
.
The value returned by this method is the same value as the
List.hashCode()
} method which is invoked on a List
}
containing a sequence of Boolean
} instances representing the
elements of array in the same order. If the array is null
, the return
value is 0.
array
- the array whose hash code to compute.array
.public static int hashCode(int[] array)
int
arrays a
and b
, if
Arrays.equals(a, b)
returns true
, it means
that the return value of Arrays.hashCode(a)
equals Arrays.hashCode(b)
.
The value returned by this method is the same value as the
List.hashCode()
} method which is invoked on a List
}
containing a sequence of Integer
} instances representing the
elements of array in the same order. If the array is null
, the return
value is 0.
array
- the array whose hash code to compute.array
.public static int hashCode(short[] array)
short
arrays a
and b
, if
Arrays.equals(a, b)
returns true
, it means
that the return value of Arrays.hashCode(a)
equals Arrays.hashCode(b)
.
The value returned by this method is the same value as the
List.hashCode()
} method which is invoked on a List
}
containing a sequence of Short
} instances representing the
elements of array in the same order. If the array is null
, the return
value is 0.
array
- the array whose hash code to compute.array
.public static int hashCode(char[] array)
char
arrays a
and b
, if
Arrays.equals(a, b)
returns true
, it means
that the return value of Arrays.hashCode(a)
equals Arrays.hashCode(b)
.
The value returned by this method is the same value as the
List.hashCode()
} method which is invoked on a List
}
containing a sequence of Character
} instances representing the
elements of array in the same order. If the array is null
, the return
value is 0.
array
- the array whose hash code to compute.array
.public static int hashCode(byte[] array)
byte
arrays a
and b
, if
Arrays.equals(a, b)
returns true
, it means
that the return value of Arrays.hashCode(a)
equals Arrays.hashCode(b)
.
The value returned by this method is the same value as the
List.hashCode()
} method which is invoked on a List
}
containing a sequence of Byte
} instances representing the
elements of array in the same order. If the array is null
, the return
value is 0.
array
- the array whose hash code to compute.array
.public static int hashCode(long[] array)
long
arrays a
and b
, if
Arrays.equals(a, b)
returns true
, it means
that the return value of Arrays.hashCode(a)
equals Arrays.hashCode(b)
.
The value returned by this method is the same value as the
List.hashCode()
} method which is invoked on a List
}
containing a sequence of Long
} instances representing the
elements of array in the same order. If the array is null
, the return
value is 0.
array
- the array whose hash code to compute.array
.public static int hashCode(float[] array)
float
arrays a
and b
, if
Arrays.equals(a, b)
returns true
, it means
that the return value of Arrays.hashCode(a)
equals Arrays.hashCode(b)
.
The value returned by this method is the same value as the
List.hashCode()
} method which is invoked on a List
}
containing a sequence of Float
} instances representing the
elements of array in the same order. If the array is null
, the return
value is 0.
array
- the array whose hash code to compute.array
.public static int hashCode(double[] array)
double
arrays a
and b
, if
Arrays.equals(a, b)
returns true
, it means
that the return value of Arrays.hashCode(a)
equals Arrays.hashCode(b)
.
The value returned by this method is the same value as the
List.hashCode()
} method which is invoked on a List
}
containing a sequence of Double
} instances representing the
elements of array in the same order. If the array is null
, the return
value is 0.
array
- the array whose hash code to compute.array
.public static int hashCode(Object[] array)
For any two arrays a
and b
, if
Arrays.equals(a, b)
returns true
, it means
that the return value of Arrays.hashCode(a)
equals
Arrays.hashCode(b)
.
The value returned by this method is the same value as the method
Arrays.asList(array).hashCode(). If the array is null
, the return value
is 0.
array
- the array whose hash code to compute.array
.public static int deepHashCode(Object[] array)
For any two arrays a
and b
, if
Arrays.deepEquals(a, b)
returns true
, it
means that the return value of Arrays.deepHashCode(a)
equals
Arrays.deepHashCode(b)
.
The computation of the value returned by this method is similar to that
of the value returned by List.hashCode()
} invoked on a
List
} containing a sequence of instances representing the
elements of array in the same order. The difference is: If an element e
of array is itself an array, its hash code is computed by calling the
appropriate overloading of Arrays.hashCode(e)
if e is an array of a
primitive type, or by calling Arrays.deepHashCode(e)
recursively if e is
an array of a reference type. The value returned by this method is the
same value as the method Arrays.asList(array).hashCode()
. If the array is
null
, the return value is 0.
array
- the array whose hash code to compute.array
.public static boolean equals(byte[] array1, byte[] array2)
array1
- the first byte
array.array2
- the second byte
array.true
if both arrays are null
or if the arrays have the
same length and the elements at each index in the two arrays are
equal, false
otherwise.public static boolean equals(short[] array1, short[] array2)
array1
- the first short
array.array2
- the second short
array.true
if both arrays are null
or if the arrays have the
same length and the elements at each index in the two arrays are
equal, false
otherwise.public static boolean equals(char[] array1, char[] array2)
array1
- the first char
array.array2
- the second char
array.true
if both arrays are null
or if the arrays have the
same length and the elements at each index in the two arrays are
equal, false
otherwise.public static boolean equals(int[] array1, int[] array2)
array1
- the first int
array.array2
- the second int
array.true
if both arrays are null
or if the arrays have the
same length and the elements at each index in the two arrays are
equal, false
otherwise.public static boolean equals(long[] array1, long[] array2)
array1
- the first long
array.array2
- the second long
array.true
if both arrays are null
or if the arrays have the
same length and the elements at each index in the two arrays are
equal, false
otherwise.public static boolean equals(float[] array1, float[] array2)
Float.equals()
.array1
- the first float
array.array2
- the second float
array.true
if both arrays are null
or if the arrays have the
same length and the elements at each index in the two arrays are
equal, false
otherwise.Float.equals(Object)
public static boolean equals(double[] array1, double[] array2)
Double.equals()
.array1
- the first double
array.array2
- the second double
array.true
if both arrays are null
or if the arrays have the
same length and the elements at each index in the two arrays are
equal, false
otherwise.Double.equals(Object)
public static boolean equals(boolean[] array1, boolean[] array2)
array1
- the first boolean
array.array2
- the second boolean
array.true
if both arrays are null
or if the arrays have the
same length and the elements at each index in the two arrays are
equal, false
otherwise.public static boolean equals(Object[] array1, Object[] array2)
array1
- the first Object
array.array2
- the second Object
array.true
if both arrays are null
or if the arrays have the
same length and the elements at each index in the two arrays are
equal according to equals()
, false
otherwise.public static boolean deepEquals(Object[] array1, Object[] array2)
true
if the two given arrays are deeply equal to one another.
Unlike the method equals(Object[] array1, Object[] array2)
, this method
is appropriate for use for nested arrays of arbitrary depth.
Two array references are considered deeply equal if they are both null
,
or if they refer to arrays that have the same length and the elements at
each index in the two arrays are equal.
Two null
elements element1
and element2
are possibly deeply equal if any
of the following conditions satisfied:
element1
and element2
are both arrays of object reference types, and
Arrays.deepEquals(element1, element2)
would return true
.
element1
and element2
are arrays of the same primitive type, and the
appropriate overloading of Arrays.equals(element1, element2)
would return
true
.
element1 == element2
element1.equals(element2)
would return true
.
Note that this definition permits null
elements at any depth.
If either of the given arrays contain themselves as elements, the behavior of this method is uncertain.
array1
- the first Object
array.array2
- the second Object
array.true
if both arrays are null
or if the arrays have the
same length and the elements at each index in the two arrays are
equal according to equals()
, false
otherwise.public static void sort(byte[] array)
array
- the byte
array to be sorted.public static void sort(byte[] array, int start, int end)
array
- the byte
array to be sorted.start
- the start index to sort.end
- the last + 1 index to sort.IllegalArgumentException
- if start > end
.ArrayIndexOutOfBoundsException
- if start < 0
or end > array.length
.public static void sort(char[] array)
array
- the char
array to be sorted.public static void sort(char[] array, int start, int end)
array
- the char
array to be sorted.start
- the start index to sort.end
- the last + 1 index to sort.IllegalArgumentException
- if start > end
.ArrayIndexOutOfBoundsException
- if start < 0
or end > array.length
.public static void sort(double[] array)
array
- the double
array to be sorted.sort(double[], int, int)
public static void sort(double[] array, int start, int end)
Double.compareTo()
.array
- the double
array to be sorted.start
- the start index to sort.end
- the last + 1 index to sort.IllegalArgumentException
- if start > end
.ArrayIndexOutOfBoundsException
- if start < 0
or end > array.length
.Double.compareTo(Double)
public static void sort(float[] array)
array
- the float
array to be sorted.sort(float[], int, int)
public static void sort(float[] array, int start, int end)
Float.compareTo()
.array
- the float
array to be sorted.start
- the start index to sort.end
- the last + 1 index to sort.IllegalArgumentException
- if start > end
.ArrayIndexOutOfBoundsException
- if start < 0
or end > array.length
.Float.compareTo(Float)
public static void sort(int[] array)
array
- the int
array to be sorted.public static void sort(int[] array, int start, int end)
array
- the int
array to be sorted.start
- the start index to sort.end
- the last + 1 index to sort.IllegalArgumentException
- if start > end
.ArrayIndexOutOfBoundsException
- if start < 0
or end > array.length
.public static void sort(long[] array)
array
- the long
array to be sorted.public static void sort(long[] array, int start, int end)
array
- the long
array to be sorted.start
- the start index to sort.end
- the last + 1 index to sort.IllegalArgumentException
- if start > end
.ArrayIndexOutOfBoundsException
- if start < 0
or end > array.length
.public static void sort(Object[] array)
array
- the Object
array to be sorted.ClassCastException
- if an element in the array does not implement Comparable
or if some elements cannot be compared to each other.sort(Object[], int, int)
public static void sort(Object[] array, int start, int end)
Comparable
interface and must be
comparable to each other without a ClassCastException
being
thrown.array
- the Object
array to be sorted.start
- the start index to sort.end
- the last + 1 index to sort.ClassCastException
- if an element in the array does not implement Comparable
or some elements cannot be compared to each other.IllegalArgumentException
- if start > end
.ArrayIndexOutOfBoundsException
- if start < 0
or end > array.length
.public static void sort(Object[] array, int start, int end, Comparator comparator)
Comparator
.
All elements must be comparable to each other without a
ClassCastException
being thrown.array
- the Object
array to be sorted.start
- the start index to sort.end
- the last + 1 index to sort.comparator
- the Comparator
.ClassCastException
- if elements in the array cannot be compared to each other
using the Comparator
.IllegalArgumentException
- if start > end
.ArrayIndexOutOfBoundsException
- if start < 0
or end > array.length
.public static void sort(Object[] array, Comparator comparator)
Comparator
. All elements
must be comparable to each other without a ClassCastException
being thrown.array
- the Object
array to be sorted.comparator
- the Comparator
.ClassCastException
- if elements in the array cannot be compared to each other
using the Comparator
.public static void sort(short[] array)
array
- the short
array to be sorted.public static void sort(short[] array, int start, int end)
array
- the short
array to be sorted.start
- the start index to sort.end
- the last + 1 index to sort.IllegalArgumentException
- if start > end
.ArrayIndexOutOfBoundsException
- if start < 0
or end > array.length
.