How to Reverse Sort an Array in Java
Quite often we need to sort array in Java luckily java.util.Arrays class provides several utility methods to sort java array of any type e.g. primitive, object or int, String, etc. Arrays are in java.util package and exposed all sorting related methods as static utility functions. you can access sort() as Arrays.sort() and just pass your array and it will sort that array object. You can sort arrays in ascending order, descending order, or any custom order defined by the custom comparator in Java.
In the last article, we have seen how to Sort ArrayList in Java and in this Java article we will see examples of sorting array in ascending order, descending order, and sorting sub-arrays in java.
By the way, basic knowledge of essential data structure is also very important and that's why I suggest all Java programmers join this comprehensive Data Structure and Algorithms online courses to fill the gaps in your understanding.
Sort Array in Java on ascending and descending order
Sorting Java Array into Ascending Order:
In order to sort an array (String, int, or any type) in ascending order we don't need anything special. Arrays.sort() method by default sort elements in their natural order implemented by the CompareTo method. The string array in Java will be sorted lexicographically.
The integer will be sorted numerically in ascending order. look on the code section for a complete example of how to sort java array into ascending order. You can also sort anonymous arrays in Java by this method but since you don't have any name to refer that it doesn't make much sense.
1. Sorting Java Array into Descending Order:
In order to sort a java array into descending order, you need to provide an external Comparator in Java which can sort elements in there reverse order, and luckily we have that built int as java.util.Collections.reverseOrder(), which returns a reverse order comparator that gives reverse of natural ordering of element objects. pass this reverse comparator to the sort method and it will sort an array into descending order as shown in the code example in the last section.
There is another way in which you can convert Array into ArrayList and then sort the ArrayList but that's again a two-step process so it's better to sort an array using Arrays.sort() method
2. Sorting Sub Array in Java
Arrays class also provides methods to sort part of java array or sub-array. So in case if you have a big array and you only need to sort a particular section then just provide the start index and end index to java.util.Arrays.sort(array,index,index) and it will sort the array only for that range.
This is much faster than sorting the whole array and then getting a range of values out of it.
Here is a code example of sorting part of the array in Java:
3. Code Example of Sorting Array in Java
In this section of code example we will see how to sort Java array into ascending order, descending order, and sorting sub-arrays in Java:
import java.util.Arrays;
import java.util.Collections;
public class HashtableDemo {
public static void main(String args[]) {
String[] companies = { "Google" , "Apple" , "Sony" };
// sorting java array in ascending order
System. out .println( "Sorting String Array in Ascending order in Java Example" );
. out .println( "Unsorted String Array in Java: " );
printNumbers (companies);
Arrays.sort(companies);
System. out .println( "Sorted String Array in ascending order : " );
printNumbers (companies);
// sorting java array in descending order
System. out .println( "Sorting Array in Descending order in Java Example" );
System. out .println( "Unsorted int Array in Java: " );
printNumbers (companies);
Arrays.sort(companies, Collections.reverseOrder());
System. out .println( "Sorted int Array in descending order : " );
printNumbers (companies);
System. out .println( "Sorting part of array in java:" );
int [] numbers = { 1, 3, 2, 5, 4 };
Arrays.sort(numbers, 0, 3);
System. out .println( "Sorted sub array in Java: " );
for ( int num : numbers) {
System. out .println(num);
}
}
public static void printNumbers(String[] companies) {
for (String company : companies) {
System. out .println(company);
}
}
}
Output:
Sorting String Array in Ascending order in Java Example
Unsorted String Array in Java:
Apple
Sony
Sorted String Array in ascending order :
Apple
Sony
Sorting Array in Descending order in Java Example
Unsorted int Array in Java:
Apple
Sony
Sorted String Array in descending order :
Sony
Apple
Sorting part of array in java:
Sorted sub array in Java:
1
2
3
5
4
Important points about the Sort method of Arrays:
Here is some important and worth noting point about sort method of Arrays class for quick references:
1. Arrays.sort() is an overloaded method and can sort int, byte, short, char or object[] arrays.
2. Arrays.sort)( also allows you to sort a sub-array or part of the array in Java.
3. Arrays class also contains utility methods e.g. binarySearch for performing a search on array
That's all on how to sort java array in ascending and descending order and part of the array in Java. You can also use the workaround by converting an array into ArrayList and then sorting but I think Arrays.sort() is the preferred method for sorting arrays in Java.
Java Tutorials you may like
How to Reverse Sort an Array in Java
Source: https://javarevisited.blogspot.com/2012/01/sort-array-in-java-ascending-and.html
0 Response to "How to Reverse Sort an Array in Java"
Post a Comment