Java Reference
In-Depth Information
The
java.util.Arrays
class contains various static methods for sorting and searching
arrays, comparing arrays, filling array elements, and returning a string representation of the
array. These methods are overloaded for all primitive types.
You can use the
sort
or
parallelSort
method to sort a whole array or a partial array.
For example, the following code sorts an array of numbers and an array of characters.
sort
parallelSort
double
[] numbers = {
6.0
,
4.4
,
1.9
,
2.9
,
3.4
,
3.5
};
java.util.Arrays.sort(numbers);
// Sort the whole array
java.util.Arrays.parallelSort(numbers);
// Sort the whole array
char
[] chars = {
'a'
,
'A'
,
'4'
,
'F'
,
'D'
,
'P'
};
java.util.Arrays.sort(chars,
1
,
3
);
// Sort part of the array
java.util.Arrays.parallelSort(chars,
1
,
3
);
// Sort part of the array
Invoking
sort(numbers)
sorts the whole array
numbers
. Invoking
sort(chars, 1, 3)
sorts a partial array from
chars[1]
to
chars[3-1]
.
parallelSort
is more efficient if
your computer has multiple processors.
You can use the
binarySearch
method to search for a key in an array. The array must be pre-
sorted in increasing order. If the key is not in the array, the method returns
-(insertionIndex
+ 1)
. For example, the following code searches the keys in an array of integers and an array
of characters.
binarySearch
int
[] list = {
2
,
4
,
7
,
10
,
11
,
45
,
50
,
59
,
60
,
66
,
69
,
70
,
79
};
System.out.println(
"1. Index is "
+
java.util.Arrays.binarySearch(list,
11
));
System.out.println(
"2. Index is "
+
java.util.Arrays.binarySearch(list,
12
));
char
[] chars = {
'a'
,
'c'
,
'g'
,
'x'
,
'y'
,
'z'
};
System.out.println(
"3. Index is "
+
java.util.Arrays.binarySearch(chars,
'a'
));
System.out.println(
"4. Index is "
+
java.util.Arrays.binarySearch(chars,
't'
));
The output of the preceding code is
1. Index is 4
2. Index is
-
6
3. Index is 0
4. Index is
-
4
You can use the
equals
method to check whether two arrays are strictly equal. Two arrays
are strictly equal if their corresponding elements are the same. In the following code,
list1
and
list2
are equal, but
list2
and
list3
are not.
equals
int
[] list1 = {
2
,
4
,
7
,
10
};
int
[] list2 = {
2
,
4
,
7
,
10
};
int
[] list3 = {
4
,
2
,
7
,
10
};
System.out.println(java.util.Arrays.equals(list1, list2));
// true
System.out.println(java.util.Arrays.equals(list2, list3));
// false
You can use the
fill
method to fill in all or part of the array. For example, the following code
fills
list1
with
5
and fills
8
into elements
list2[1]
through
list2[5-1]
.
fill
int
[] list1 = {
2
,
4
,
7
,
10
};
int
[] list2 = {
2
,
4
,
7
,
7
,
7
,
10
};
java.util.Arrays.fill(list1,
5
);
// Fill 5 to the whole array
java.util.Arrays.fill(list2,
1
,
5
,
8
);
// Fill 8 to a partial array
Search WWH ::
Custom Search