Join our newsletter for the latest updates.
Java Program to Sort Elements in Lexicographical Order (Dictionary Order)

Java Program to Sort Elements in Lexicographical Order (Dictionary Order)

In this program, you'll learn to sort the element words in lexicographical order using a for loop and if else in Java.

To understand this example, you should have the knowledge of the following Java programming topics:


Example: Program to Sort Strings in Dictionary Order

public class Sort {

  public static void main(String[] args) {
    String[] words = { "Ruby", "C", "Python", "Java" };

    for(int i = 0; i < 3; ++i) {
      for (int j = i + 1; j < 4; ++j) {
        if (words[i].compareTo(words[j]) > 0) {

          // swap words[i] with words[j[
          String temp = words[i];
          words[i] = words[j];
          words[j] = temp;
        }
      }
    }

    System.out.println("In lexicographical order:");
    for(int i = 0; i < 4; i++) {
      System.out.println(words[i]);
    }
  }
}

Output

In lexicographical order:
C
Java
Python
Ruby

In the above program, the list of 5 words to sorted is stored in a variable, words.

Then, we loop through each word (words[i]) and compare it with all words (words[j]) after it in the array. This is done by using the string's compareTo() method.

If the return value of compareTo() is greater than 0, it has to be swapped in position, i.e. words[i] comes after words[j]. So, in each iteration, words[i] contains the earliest word.

Execution Steps
Iteration Initial words i j words[]
1 { "Ruby", "C", "Python", "Java" } 0 1 { "C", "Ruby", "Python", "Java" }
2 { "C", "Ruby", "Python", "Java" } 0 2 { "C", "Ruby", "Python", "Java" }
3 { "C", "Ruby", "Python", "Java" } 0 3 { "C", "Ruby", "Python", "Java" }
4 { "C", "Ruby", "Python", "Java" } 1 2 { "C", "Python", "Ruby", "Java" }
5 { "C", "Python", "Ruby", "Java" } 1 3 { "C", "Java", "Ruby", "Python" }
Final { "C", "Java", "Ruby", "Python" } 2 3 { "C", "Java", "Python", "Ruby" }