Searches a range of
the specified array for the specified object using the binary
search algorithm.
The range must be sorted into ascending order
according to the
natural ordering of its elements (as by the
Arrays.sort(Object[], int, int)
method) prior to making this
call. If it is not sorted, the results are undefined.
(If the range contains elements that are not mutually comparable (for
example, strings and integers), it
cannot be sorted according
to the natural ordering of its elements, hence results are undefined.)
If the range contains multiple
elements equal to the specified object, there is no guarantee which
one will be found.
Returns:
index of the search key, if it is contained in the array
within the specified range;
otherwise,
(-(insertion point) - 1). The
insertion point is defined as the point at which the
key would be inserted into the array: the index of the first
element in the range greater than the key,
or
toIndex if all
elements in the range are less than the specified key. Note
that this guarantees that the return value will be >= 0 if
and only if the key is found.
Parameters:
-
a - the array to be searched
-
fromIndex - the index of the first element (inclusive) to be
searched
-
toIndex - the index of the last element (exclusive) to be searched
-
key - the value to be searched for
Throws:
-
ClassCastException - if the search key is not comparable to the
elements of the array within the specified range.
-
IllegalArgumentException - if {@code fromIndex > toIndex}
-
ArrayIndexOutOfBoundsException - if {@code fromIndex < 0 or toIndex > a.length}
Since:
1.6