Java Tutorial

Java Tutorial Java Features C++ vs Java Java History Java Hello World Java Development Kit Java Runtime Environment Java Virtual Machine Difference between JDK, JRE, and JVM Memory Areas in Java Java Operators Java Keywords Primitive Data Types Variables

Java Loops

Java Do While Loop Java While Loop Java For Loop Java Enhanced For Loop

Java Programs

Java Basic Programs Factorial Program in Java Fibonacci Series Program in Java Prime Number Program in Java Palindrome Number Program in Java Armstrong Number Program in Java Anagram Program in Java Pattern Programs in Java Calculator Program in Java Leap Year Program in Java Addition Program in Java Number Pattern Programs in Java Star Pattern Programs in Java Package Program in Java Pyramid Program in Java Sorting Program in Java String Palindrome Program in Java Even Odd Program in Java For Loop Program in Java If Else Program in Java Switch Case Program in Java GCD Program in Java LCM Program in Java Hello Program in Java Matrix Program in Java Menu Driven Program in Java Series Program in Java Client Server Program in Java Swapping Program in Java Pig Latin Program in Java Tower of Hanoi Program in Java Recursion Program in Java Matrix Multiplication Program in Java Perfect Number Program in Java Classes and Objects in Java Example Programs String Programs in Java Array Programs in Java Constructor Program in Java Inheritance Program in Java Abstract class Program in Java Interface Program in Java Encapsulation Program in Java Polymorphism Program in Java Exception Handling Program in Java Multithreading Program in Java Thread Program in Java Collection Programs in Java ArrayList Program in Java Stack Program in Java Applet Program in Java Swing Program in Java JDBC Program in Java How to run Java program in command prompt How to run Java program in Eclipse

Java Sorting

Sorting Algorithms in Java Merge Sort in Java Quick Sort in Java Bubble Sort in Java Insertion Sort in Java Selection Sort in Java Heap Sort in Java Radix Sort in Java Topological Sort in Java Bucket Sort in Java Counting Sort in Java

Java OOPs Concepts

OOPs - Object Oriented Programming Objects and Classes in Java Java Naming Conventions Constructors in Java Java this keyword Java static keyword Inheritance in Java Aggregation in Java Java super keyword Constructor Chaining and Constructor Overloading Java Polymorphism Static and Dynamic Binding in Java Java Abstraction Abstract class in Java Interface in Java Difference between Abstract class and Interface Java final keyword Packages in Java Access Modifiers in Java Java Wrapper classes Java Numbers Java Characters Java Integer Java Boolean Java Arrays Java Command Line Arguments Java strictfp Keyword Java Math

Java Strings

Java Strings Java String Methods StringBuilder in Java StringBuffer in Java Java Regular Expressions StringBuffer vs StringBuilder String vs StringBuffer String vs StringBuilder String Manipulation in Java Java String Concatenation How to Reverse a String in Java String Array in Java How to Compare Two Strings in Java How to Concatenate Two Strings in Java Why String in Immutable in Java java.lang.NumberFormatException for Input String String Pool in Java Java Generate Random String How to take String Input in Java Java String Interview Questions

Java Exceptions

Exception Handling in Java Java try catch Java throw Java throws Difference between throw and throws Java finally Java Custom Exception Java Exception Propagation

Garbage Collection

Automatic Resource Management in Java Java Garbage Collection Java finalize() Java gc() Difference between final, finally and finalize

Multithreading

Multithreading in Java Process and Thread in Java Basic Terms in Multithreading Java Thread creation Thread Scheduler in Java Java Thread class DeadLock in Java

Java IO

Java IO Java Read File Java BufferedWriter Java InputStreamReader Java File Java Read File Line By Line Java FileOutputStream Jar File in Java

Serialization

Java Serialization Java transient

Networking

Java Network Programming Java Socket Programming Java URL Java URLConnection HttpURLConnection in Java Java InetAddress Java DatagramSocket and Java DatagramPacket

AWT

Java AWT

Swing

Swing in Java

Java Collections

Collections in Java Java List Interface ArrayList in Java LinkedList in Java Vector in Java Stack in Java ArrayList vs LinkedList in Java ArrayList vs Vector in Java Java Set Interface HashSet in Java LinkedHashSet in Java TreeSet in Java Java Queue Interface PriorityQueue in Java ArrayDeque in Java Java Map Interface HashMap in Java LinkedHashMap in Java TreeMap in Java Dictionary in Java Hashtable in Java Properties in Java Collections class in Java Java Comparable Java Comparator Comparable vs Comparator in Java

Java Generics

Generics in Java

Java Annotations

Annotations in Java

Java JDBC

Java JDBC Tutorial

Java Differences

Java vs JavaScript Python vs Java Kotlin vs Java Java vs C++ C# vs Java Static vs Non-static in Java C vs Java int vs Integer in Java Stack vs Heap in Java Java Array vs ArrayList

How to

How to run Java program How to set path in Java How to check the Java version in cmd How to install Java in Windows 10 How to run Java program in cmd How to call a method in Java How to sort an array in Java How to iterate HashMap in Java How to write Java program How to create an array in Java How to create a package in Java How to generate random numbers in Java How to input String in Java How to create thread in Java How to find length of String in Java How to sort a string in Java How to use scanner in Java How to achieve multiple inheritance in Java How to run Java program in Eclipse How to call a function in Java How to create array of objects in Java How to create custom exception in Java How to achieve abstraction in Java How to call static method in Java

Java 8 Features

Java 8 Features Lambda Expressions in Java Functional Interface in Java Streams in Java Java Base64 Encoding and Decoding Parallel Arrays Sort in Java

Java 9 Features

Java 9 Tutorial Java 9 Try With Resources Java 9 Interface Private Method

Java Servlet Tutorial

Java Servlets Tutorial

Java JSP Tutorial

Java JSP Tutorial

Hibernate Tutorial

Hibernate Tutorial

Spring Tutorial

Spring Tutorial

Spring MVC Tutorial

Spring MVC Tutorial

Jenkins Tutorial

Jenkins Tutorial

Java Math Methods

Math.abs() Math.acos() Math.addExact() Math.asin() Math.atan () Math.atan2() Math.cbrt() Math.ceil() Math.copysign() Math.cos() Math.cosh() Math.decrementExact() Math.exp() Math.expm1() Math.floor() Math.floorDiv() Math.floorMod() Math.getExponent() Math.hypot() Math.IEEEremainder() Math.incrementExact() Math.log() Math.log10() Math.log1p() Math.max() Math.min() Math.multiplyExact() Math.multiplyFull() Math.negateExact() Math.nextAfter() Math.nextDown() Math.nextUp() Math.pow() Math.random() Math.rint() Math.round() Math.scalb() Math.signum() Math.sin() Math.sinh() Math.sqrt() Math.subtractExact() Math.tan() Math.tanh() Math.toDegrees() Math.toIntExact() Math.toRadians() Math.ulp()

Java String Methods

toCharArray() copyValueOf() endsWith() equals() equalsIgnoreCase() format() getBytes() getChars() hashCode() indexOf() intern() isEmpty() join() lastIndexOf() length() replace() replaceAll() replaceFirst() split() startsWith() subSequence() substring() toLowerCase() toUpperCase() trim() valueOf()

Java Conversion

Java Convert String to int Java Convert int to String Java Convert String to long Java Convert long to String Java Convert String to float Java Convert float to String Java Convert String to double Java Convert double to String Java Convert String to Date Java Convert Date to String Java Convert String to Object Java Convert Object to String Java Convert String to char Java Convert char to String Java Convert int to long Java Convert long to int

Misc

Functional Interfaces in Java Singleton class in Java Awesome explanation of Strings in Java Object class in Java Static class in Java All the important string methods in Java String Handling Method in Java What are Array strings in Java Advantages and Disadvantages of Strings in Java Big Decimal class in Java Class definition in Java Char and String differences in Java Difference between String, StringBuffer and StringBuilder in java Replace character in string Java String Coding Interview Questions in Java What is String in Java? String isnullorempty in Java String Matches in Java Trim Method in String Java Bean class in Java Libraries in Java Arithmetic Operations on String in Java

How to sort an array in Java

How to sort an array in Java

Sorting is the process of arranging the elements of a list or array in a specific order, either ascending or descending. The sorting criterion numerical and alphabetical is commonly used to sort.

There are various sorting techniques to sort an array using loops. However, Java provides two in-built methods to facilitate the sorting of array elements.

In this tutorial, we will learn how to sort an array using the following methods:

  • Using Arrays.sort() Method
  • Using reverseOrder() Method
  • Using Java for loop

Using Arrays.sort() Method

The Arrays.sort() method sorts the elements of primitive type and objects used to implement the comparable interface.

The Arrays.sort()method usesthe Dual Pivot Quicksort algorithm to sort primitive type elements and iterative mergesort to sort the objects.However, in the latest versions of Java, it uses Timsort.And its complexity is O(n log(n)).        

The main task of Arrays.sort() is to parse the array given in the argument. It can also be used to sort the sub-arrays. It is a static method and does not return anything. It can sort the arrays of type integer, float, double, char.

Syntax:

sort(array_name);          

The syntax to sort the selective array / subarray is:

sort(array_name, fromIndex, toIndex);

where,

fromIndex is the start of the subarray (inclusive), and toIndex is the end of the subarray (exclusive).

Let’s see some examples to sort arrays of different primitive types:

  • Sorting a Numeric array:

To sort an integer array in ascendingorder, we directly use the Arrays.sort().  It sorts the arrays in ascending order by default. We can also use the toString() method of the Arrays class to print the array.

Note: We can sort double, float, long arrays just like the integer array using sort() method.

NumericArraySort.java

 //importing necessary libraries
 import java.util.Arrays;
 public class NumericArraySort {
 public static void main(String[] args)
 {
 //defining an integer array
 int[] array_name = {45, 21, 66, 87, 32, 77, 1, 8, 33};
 System.out.printf("Array before sorting: %s", Arrays.toString(array_name));
 //sorting the array in ascending order 
Arrays.sort(array_name);
System.out.printf("\n\nArray after sorting: %s\n", Arrays.toString(array_name));
 }
 } 

Output:

How to sort an array in Java

To sort an array in descending order the sort() method uses a second parameter Collections.reverseOrder(). Now we will see an example to sort an integer array in descending order.

Note: TheCollections.reverseOrder()is not applicable for primitive types. It works fine with arrays of objects.

NumericArrayRevSort.java

 //importing necessary libraries
 import java.util.Arrays;
 import java.util.Collections;
  public class NumericArrayRevSort
 {
     public static void main(String[] args)
     {      
         Integer[] array_name = {45, 21, 66, 87, 32, 77, 1, 8, 33};
         //Printing the unsorted array
         System.out.printf("Array before sorting: %s",
                  Arrays.toString(array_name));
         //sorting array in descending order
         Arrays.sort(array_name, Collections.reverseOrder());
         //Printing sorted array
         System.out.printf("\n\nArray after sorting in descending order: %s\n",
                Arrays.toString(array_name));
     }
 } 

Output:

How to sort an array in Java
  • Sorting a String array:

Like an integer array, we can sort string array using the sort() method of Array. When the string array is passed to the sort() method, it sorts the array in ascending alphabetical order. As discussed earlier, to sort the array in descending alphabetical order, we use the reverseOrder() method of Collections class as the second parameter of the sort() method.

Let us see an example to sort the string array:

StringArraySort.java

 //importing necessary libraries
 import java.util.Arrays;
 import java.util.Collections;
 public class StringArraySort
 {
     public static void main(String[] args)
     {
         String str_array[] = {"Guava", "Pineapple", "Apple", "Peach", "Grapes", "Banana"};
         System.out.printf("Array before sorting: \n%s\n\n", Arrays.toString(str_array));
         //sorting array in ascending order
         Arrays.sort(str_array);
         System.out.printf("String array sorted in ascending order: \n%s\n\n",                       
                Arrays.toString(str_array));
         //sorting array in descending order
         Arrays.sort(str_array, Collections.reverseOrder());
         System.out.printf("String array sorted in descending order : \n%s\n\n",
               Arrays.toString(str_array));
     }
 } 

Output:

How to sort an array in Java
  • Sorting a character array

The sort() method also allows the sorting of a char array. There are two types of character array sort:

  1. Sorting complete array using sort(char[] array_name) method
  2. Sorting only the specified range of characters using sort(char[] array_name, int fromIndex_var, int toIndex_var) method where fromIndex_var is inclusive and toIndex_var is exclusive.

Let us see how to sort a character array in ascending order using the sort() method.

CharArraySort.java

 //importing necessary libraries
 import java.util.Arrays;
 public class CharArraySort {
   public static void main(String[] args) {
     //Creating a character array
     char[] charArray = new char[] { 'T', 'F', 'A', 'W', 'B', 'Q', 'M', 'C'};
     //Printing the array before sorting
     System.out.printf("\nChar Array before sorting : %s", Arrays.toString(charArray));
     //Sorting the Array
     Arrays.sort(charArray);
     //Printing the array after complete sort
     System.out.printf("\n\nChar Array after sorting : %s", Arrays.toString(charArray));
     // Defining another char array
     char[] charArray2 =
         new char[] { 'T', 'F', 'A', 'W', 'B', 'Q', 'M', 'C'};
     //Sorting a subarray / selective sorting
     Arrays.sort(charArray2, 2, 8);
     //Printing selectively sorted array
     System.out.printf("\n\nChar Array after selective sorting(2,8) : %s \n", Arrays.toString(charArray2));
   }
 } 

Output:

How to sort an array in Java
  1. sort() method of Collections class

The sort() method of Collection class works for the objects Collections like the ArrayList, LinkedList, etc. When the collection elements are of Set type, we can use the TreeSet. To sort the elements of a List type, we use sort() and reverseOrder() methods.

Syntax:

Collections.sort(List list_name)

Consider the following example to understand how to sort the String objects of an ArrayList in ascending order:

CollectionsSort.java

 //importing necessary libraries
 import java.util.*;
 public class CollectionsSort {
     public static void main(String[] args)
     {
         // Create a list of strings
         ArrayList<String> array_name = new ArrayList<String>();
         array_name.add("Guava");
         array_name.add("Pineapple");
         array_name.add("Banana");
         array_name.add("Apple");
         array_name.add("Grapes");
         //Printing array before sorting
         System.out.println("Arrays before sorting:"+ array_name);
         //to sort in ascending order
         Collections.sort(array_name);
         //Printing the sorting array
         System.out.println("\nArrays after sorting:"+ array_name);
     }
 } 

Output:

How to sort an array in Java

Let’s see an example to sort the String objects in descending order. For this we use reverseOrder() method.

CollectionsSortReverse.java

 import java.util.*;
 public class CollectionsSortReverse{
     public static void main(String[] args)
     {
         // Create a list of strings
         ArrayList<String> array_name = new ArrayList<String>();
         array_name.add("Guava");
         array_name.add("Pineapple");
         array_name.add("Banana");
         array_name.add("Apple");
         array_name.add("Strawberry");
         array_name.add("Kiwi");
         //Printing array before sorting
         System.out.println("\nArrays before sorting:"+ array_name);
         //Sorting array in descending order
         Collections.sort(array_name, Collections.reverseOrder());
         System.out.println("\nDescending array after sorting:"+ array_name);
     }
 } 

Output:

How to sort an array in Java

Using the for loop

We can sort an array manually using for loops. The loops traverse the array and compare the adjacent elements and then put them in the proper order.

Here we use two for loops, one to traverse the array from the start and another for loop, which is nested inside the outer loop to traverse the next element.

There are various types of sorting techniques to sort the arrays using for loops.

Click here to learn about different sorting algorithms with examples.

Here we will see the example of the Bubble Sort algorithm, which is the simplest sorting algorithm. In this algorithm, each element of an array is compared to the adjacent element.

ForLoopSort.java

 public class ForLoopSort {
 public static void main(String[] args) { 
     int[] a = {43, 23, 11, 67, 33, 10, 5, 22, 70};
     int n = a.length;
     int i,j;
     //printing array before sorting
     System.out.println("\nArray before sorting:");
     for(i = 0; i < n; i++){
         System.out.print(a[i]+ " ");
     }
     for(i=0; i<n; i++) 
     { 
         for (j=0 ;j<n; j++) 
         { 
             if(a[i]<a[j]) 
             { 
                 int temp = a[i]; 
                 a[i]=a[j]; 
                 a[j] = temp;  
             } 
         } 
     } 
     System.out.println("\n\nArray after bubble sort:"); 
     for(i=0; i<n; i++) 
     { 
         System.out.print(a[i]+ " "); 
     } 
     System.out.println();
 } 
 }  

Output:

How to sort an array in Java

We can also write a user-defined method to sort an array. In the following example, we are using the method named sort_array().

ArraySort.java

 public class ArraySort { 
     public static void main(String[] args) { 
     int[] a = {43, 23, 11, -4, 67, 33, 10, -2, 5, 22, 70};
     int n = a.length;
     int i,j;
     //Printing array before sorting
     System.out.println("\nArray before sorting:");
     for(i = 0; i < n; i++){
         System.out.print(a[i]+ " ");
     }
     sort_array(a, n); //passing the array and the length of array
     System.out.println("\n\nArray after bubble sort:"); 
     for(i=0; i<n; i++) 
     { 
         System.out.print(a[i]+ " "); 
     } 
     System.out.println();
 } 
     public static void sort_array(int arr[], int len){
         for(int i=0; i<len; i++) 
         { 
                 for (int j=0 ;j<len; j++) 
                 { 
                     if(arr[i]<arr[j]) 
                     { 
                         int temp = arr[i]; 
                         arr[i]=arr[j]; 
                         arr[j] = temp;  
                     } 
                 } 
         } 
     }
 }  

Output:

How to sort an array in Java

In this way, we have learned how to sort an array in Java using the build-in methods andusing the Java for loop.



ADVERTISEMENT
ADVERTISEMENT