java.util.Arrays class contains various static methods for manipulating arrays. The manipulation includes searching, sorting, list view of an array and others.
- Using the
asList() method the array can be converted to a List . This method returns an un-modifiable list, so adding elements to that list is not supported.
Declaration of java.util.Arrays.asList() method.
public static <T> List<T> asList(T... a)
Here is a sample program which uses asList method.
Arrays asList Test import java.util.Arrays;
class ArraysAsListTest { public static void main(String arg[]) { String sample[] = {"MeritCampus", "Siva", "Mahesh", "Kiran"}; List<String> sampleList = Arrays.asList(sample); // LINE A System.out.println(sampleList); // LINE B } } OUTPUT[MeritCampus, Siva, Mahesh, Kiran] DESCRIPTIONAt LINE A , the string array is converted to the list sampleList , which holds all the elements present in array sample.
LINE B prints the elements present in the list, same as the elements in the array.
THINGS TO TRY - Add elements to the list
sampleList after LINE B and print the elements in the list.
- Remove elements from the list
sampleList and print the elements in the list.
- The
sort() method sorts the elements of the specified array in ascending order. It uses a variant of quicksort for sorting. Other variants of sort method are present which sorts the specified range of the specified array.
Declaration of java.util.Arrays.sort() method
public static void sort(T[] array)
Here is a sample program which uses sort method.
Arrays Sort Test java.util.Arrays;
class ArraysSortTest { public static void main(String arg[]) { int sample[] = {5, 1, 8, 2, 4, 3, 7, 6, 10, 9}; Arrays.sort(sample, 3, 8); // LINE A System.out.print("Array after sorting within specified range is: "); for (int temp : sample) { System.out.print(temp + " "); } Arrays.sort(sample); // LINE B System.out.println(); System.out.print("Array after sorting all elements is: "); for (int temp : sample) { System.out.print(temp + " "); } } } OUTPUTArray after sorting within specified range is: 5 1 8 2 3 4 6 7 10 9 Array after sorting all elements is: 1 2 3 4 5 6 7 8 9 10 DESCRIPTIONAt LINE A , the array is sorted in the range [3, 8) i.e. inclusive lower limit and exclusive upper limit. The elements after sorting in the specified range are printed.
At LINE B the whole array is sorted. The elements after sorting are printed. THINGS TO TRY - Try changing the sorting range at
LINE A . Consider cases like fromIndex greater than toIndex , fromIndex equal to toIndex and index values out of bounds.
- Try sorting
double array or float array or String array.
- The
binarySearch() method searches the specified array for the specified key using binary search algorithm. Note that the array must be sorted before invoking binarySearch() method. This method returns an integer, on success it returns the index of the key, otherwise, (-(insertion point) - 1) where the insertion point is the point at which the key would be inserted into the array.
Declaration of java.util.Arrays.binarySearch() method
public static int binarySearch(T[] a, T key)
Here is a sample program which uses binarySearch method.
Arrays BinarySearch Test java.util.Arrays;
class ArraysBinarySearchTest { public static void main(String arg[]) { int sample[] = {5, 1, 8, 0, 4, 3, 7, 6, 10, 9}; Arrays.sort(sample); // LINE A int index = Arrays.binarySearch(sample, 5); // LINE B if (index >= 0) { System.out.println("Element 5 is found at position: " + index); } else { System.out.println("Element 5 is not found. It can be inserted at position: " + index); } index = Arrays.binarySearch(sample, 2); //LINE C if (index >= 0) { System.out.println("Element 2 is found at position: " + index); } else { System.out.println("Element 2 is not found. It can be inserted at position: " + index); } } } OUTPUTElement 5 is found at position: 4 Element 2 is not found. It can be inserted at position: -3 DESCRIPTIONInitially the array is not sorted, we need to sort the array before searching. Sorting is done at LINE A .
At LINE B , binary search is done on the array with search key as 5. 'index ' holds the position of the search key in the array. If found, position is printed else element is not found.
At LINE C , we are trying to find an element which is not present in the array it returns a values less than 0 i.e. (-(insertion point) - 1) as mentioned above. THINGS TO TRY - Comment
LINE A and search for the key and print the result.
- Use a different data type like
float for search key and perform the binary search i.e. search for 5.0f instead of 5
- Search for the key
14 instead of 2
|