Sabtu, 29 Maret 2014

How to Sort Array in Java ascending and descending order of elements with Example




Quite often we need to sort array in Java luckily java.util.Arrays class provide several utility method to sort java array of any type e.g. primitive, object or int, String etc. Arrays is in java.util package and exposed all sorting related method 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 array in ascending order, descending order or any custom order defined by custom comparator in Java. In 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.





Sort Array in Java on ascending and descending order




Sorting Java Array into Ascending Order:



how to sort array in java ascending descending order exampleIn order to sort an array (String, int or any type) in ascending order we don't need to to anything special. Arrays.sort() method by default sort elements in there natural order implemented by CompareTo method. String array in Java will be sorted lexicographically. integer will be sorted numerically ascending order. look on code section for complete example of how to sort java array into ascending order. You can also sort anonymous array in Java by this method but since you don’t have any name to refer that it doesn’t make much sense.





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 which gives reverse of natural ordering of element objects. pass this reverse comparator to sort method and it will sort array into descending order as shown in code example on last section. There is another way in which you can convert Array into ArrayList and than sort the arraylist but that’s again a two step process so its better to sort array using Arrays.sort() method











Sorting Sub Array in Java



Arrays class also provide methods to sort part of java array or sub array. So in case if you have big array and you only need to sort a particular section than just provide 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 whole array and than getting a range of values out of it. here is code example of sorting part of array in Java:








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");


System.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:


Google


Apple


Sony





Sorted String Array in ascending order :


Apple


Google


Sony





Sorting Array in Descending order in Java Example


Unsorted int Array in Java:


Apple


Google


Sony


Sorted String Array in descending order :


Sony


Google


Apple


Sorting part of array in java:


Sorted sub array in Java:


1


2


3


5


4












Important points about Sort method of Arrays:



Here are 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 array in Java.


3. Arrays class also contains utility methods e.g. binarySearch for performing search on array





That’s all on how to sort java array on ascending and descending order and part of array in Java. You can also use the workaround by converting array into arraylist and than sorting but I think Arrays.sort() is preferred method for sorting arrays in Java.





Java Tutorials you may like





































Source:http://javarevisited.blogspot.com/2012/01/sort-array-in-java-ascending-and.html

Tidak ada komentar:

Posting Komentar