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

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


Example: Program to Sort Strings in Dictionary Order

class Main {
  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 example, we have created a String array named words. The array includes 5 elements.

Here, we are using

  • for loops to access and compare each array element
  • compareTo() method to perform the comparison

Since we are sorting elements in lexicographical (dictionary) order, we are swapping elements if the first element comes after the second element in the dictionary.

Here's how elements are compared and swapped in each iteration.

Initial words i j Comparison words[]
{ "Ruby", "C", "Python", "Java" } 0 1 Ruby and C { "C", "Ruby", "Python", "Java" }
{ "C", "Ruby", "Python", "Java" } 0 2 C and Python { "C", "Ruby", "Python", "Java" }
{ "C", "Ruby", "Python", "Java" } 0 3 C and Java { "C", "Ruby", "Python", "Java" }
{ "C", "Ruby", "Python", "Java" } 1 2 Ruby and Python { "C", "Python", "Ruby", "Java" }
{ "C", "Python", "Ruby", "Java" } 1 3 Python and Java { "C", "Java", "Ruby", "Python" }
{ "C", "Java", "Ruby", "Python" } 2 3 Ruby and Python { "C", "Java", "Python", "Ruby" }
Did you find this article helpful?