The Arrays Class
Tags: java, programming, learning, beginners
Published: 2024-05-28 14:47:07

The **java.util.Arrays** class contains useful methods for common array operations such as sorting and searching.

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.

`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 presorted 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.

`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.

`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]**.

`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`

You can also use the **toString** method to return a string that represents all elements in the array. This is a quick and simple way to display all elements in the array. For example, the following code

`int[] list = {2, 4, 7, 10};
System.out.println(Arrays.toString(list));`

displays **[2, 4, 7, 10]**.