This class defines static methods for
sorting, searching, and performing other useful operations on arrays.
It also defines the asList( ) method, which
returns a List wrapper around a specified array of
objects. Any changes made to the List are also
made to the underlying array. This is a powerful method that allows
any array of objects to be manipulated in any of the ways a
List can be manipulated. It provides a link
between arrays and the Java collections framework.
The various sort( )
methods sort an array (or a specified portion of an array) in place.
Variants of the method are defined for arrays of each primitive type
and for arrays of Object. For arrays of primitive
types, the sorting is done according to the natural ordering of the
type. For arrays of objects, the sorting is done according to the
specified Comparator, or, if the array contains
only java.lang.Comparable objects, according to
the ordering defined by that interface. When sorting an array of
objects, a stable sorting algorithm is used so that the relative
ordering of equal objects is not disturbed. (This allows repeated
sorts to order objects by key and subkey, for example.)
The binarySearch( )
methods perform an efficient search (in logarithmic time) of a sorted
array for a specified value. If a match is found in the array,
binarySearch( ) returns the index of the match. If
no match is found, the method returns a negative number. For a
negative return value r, the index
-(r+1) specifies the array index at which the
specified value can be inserted to maintain the sorted order of the
array. When the array to be searched is an array of objects, the
elements of the array must all implement
java.lang.Comparable, or you must provide a
Comparator object to compare them.
The
equals( ) methods test whether two arrays are
equal. Two arrays of primitive type are equal if they contain the
same number of elements and if corresponding pairs of elements are
equal according to the == operator. Two arrays of
objects are equal if they contain the same number of elements and if
corresponding pairs of elements are equal according to the
equals( ) method defined by those objects. The
fill( ) methods fill an array or a specified range
of an array with the specified value.
Java 5.0 adds hashCode( ) methods that compute a
hashcode for the contents of the array. These methods are compatible
with the equals( ) methods: equal(
) arrays will always have the same hashCode(
). Java 5.0 also adds deepEquals( ) and
deepHashCode( ) methods that handle
multi-dimensional arrays. Finally, the Java 5.0 toString(
) and deepToString( ) methods convert
arrays to strings. The returned strings are a comma-separated list of
elements enclosed in square brackets.
public class Arrays {
// No Constructor
// Public Class Methods
public static <T> List<T> asList(T ... a);
public static int binarySearch(char[ ] a, char key);
public static int binarySearch(short[ ] a, short key);
public static int binarySearch(long[ ] a, long key);
public static int binarySearch(int[ ] a, int key);
public static int binarySearch(float[ ] a, float key);
public static int binarySearch(Object[ ] a, Object key);
public static int binarySearch(byte[ ] a, byte key);
public static int binarySearch(double[ ] a, double key);
public static <T> int binarySearch(T[ ] a, T key, Comparator<? super T> c);
5.0 public static boolean deepEquals(Object[ ] a1, Object[ ] a2);
5.0 public static int deepHashCode(Object[ ] a);
5.0 public static String deepToString(Object[ ] a);
public static boolean equals(boolean[ ] a, boolean[ ] a2);
public static boolean equals(long[ ] a, long[ ] a2);
public static boolean equals(float[ ] a, float[ ] a2);
public static boolean equals(double[ ] a, double[ ] a2);
public static boolean equals(char[ ] a, char[ ] a2);
public static boolean equals(byte[ ] a, byte[ ] a2);
public static boolean equals(int[ ] a, int[ ] a2);
public static boolean equals(short[ ] a, short[ ] a2);
public static boolean equals(Object[ ] a, Object[ ] a2);
public static void fill(char[ ] a, char val);
public static void fill(short[ ] a, short val);
public static void fill(byte[ ] a, byte val);
public static void fill(int[ ] a, int val);
public static void fill(double[ ] a, double val);
public static void fill(boolean[ ] a, boolean val);
public static void fill(Object[ ] a, Object val);
public static void fill(float[ ] a, float val);
public static void fill(long[ ] a, long val);
public static void fill(int[ ] a, int fromIndex, int toIndex, int val);
public static void fill(double[ ] a, int fromIndex, int toIndex, double val);
public static void fill(short[ ] a, int fromIndex, int toIndex, short val);
public static void fill(char[ ] a, int fromIndex, int toIndex, char val);
public static void fill(float[ ] a, int fromIndex, int toIndex, float val);
public static void fill(byte[ ] a, int fromIndex, int toIndex, byte val);
public static void fill(boolean[ ] a, int fromIndex, int toIndex, boolean val);
public static void fill(Object[ ] a, int fromIndex, int toIndex, Object val);
public static void fill(long[ ] a, int fromIndex, int toIndex, long val);
5.0 public static int hashCode(short[ ] a);
5.0 public static int hashCode(char[ ] a);
5.0 public static int hashCode(long[ ] a);
5.0 public static int hashCode(int[ ] a);
5.0 public static int hashCode(byte[ ] a);
5.0 public static int hashCode(double[ ] a);
5.0 public static int hashCode(Object[ ] a);
5.0 public static int hashCode(boolean[ ] a);
5.0 public static int hashCode(float[ ] a);
public static void sort(Object[ ] a);
public static void sort(short[ ] a);
public static void sort(float[ ] a);
public static void sort(double[ ] a);
public static void sort(long[ ] a);
public static void sort(byte[ ] a);
public static void sort(char[ ] a);
public static void sort(int[ ] a);
public static <T> void sort(T[ ] a, Comparator<? super T> c);
public static void sort(short[ ] a, int fromIndex, int toIndex);
public static void sort(int[ ] a, int fromIndex, int toIndex);
public static void sort(char[ ] a, int fromIndex, int toIndex);
public static void sort(long[ ] a, int fromIndex, int toIndex);
public static void sort(float[ ] a, int fromIndex, int toIndex);
public static void sort(double[ ] a, int fromIndex, int toIndex);
public static void sort(byte[ ] a, int fromIndex, int toIndex);
public static void sort(Object[ ] a, int fromIndex, int toIndex);
public static <T> void sort(T[ ] a, int fromIndex, int toIndex, Comparator<? super T> c);
5.0 public static String toString(float[ ] a);
5.0 public static String toString(boolean[ ] a);
5.0 public static String toString(Object[ ] a);
5.0 public static String toString(double[ ] a);
5.0 public static String toString(int[ ] a);
5.0 public static String toString(long[ ] a);
5.0 public static String toString(short[ ] a);
5.0 public static String toString(byte[ ] a);
5.0 public static String toString(char[ ] a);
}