Sort a List Alphabetically in Java

Mohammad Irfan Jan 30, 2023 Dec 18, 2021
  1. Sort a List Using the Collections.sort() Method in Java
  2. Sort a List Using the list.stream().sorted() Method in Java 8
  3. Sort a List Using the Guava Library in Java
  4. Sort a List Using the Comparator.naturalOrder() in Java
  5. Sort a List Using the String Class in Java
Sort a List Alphabetically in Java

This tutorial introduces how to sort a list of elements alphabetically in Java.

List is a linear data type used to store elements of a similar type in Java. In Java, List is an interface, and ArrayList is its implementation class.

We can use several ways to sort a List: Collections class, String class, Google Guava library, etc. Let’s understand with some examples.

Sort a List Using the Collections.sort() Method in Java

The Collections is a class in the java.util package that provides several methods to collect data. It provides one sort() method to sort the list elements.

Here, we used this method to sort the list alphabetically. See the example below.

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class SimpleTesting{
    public static void main(String[] args){
        List<String> list = new ArrayList<>();
        list.add("India");
        list.add("US");
        list.add("China");
        list.add("Russia");
        list.add("Australia");
        System.out.println(list);
        Collections.sort(list);
        System.out.println("-----------Sorted List------------");
        System.out.println(list);        
    }
}

Output:

[India, US, China, Russia, Australia]
-----------Sorted List------------
[Australia, China, India, Russia, US]

The sort() method has one overloaded version that takes one extra argument to sort elements in case-insensitive order. See the example below where we used this method, and it works fine.

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class SimpleTesting{
    public static void main(String[] args){
        List<String> list = new ArrayList<>();
        list.add("India");
        list.add("US");
        list.add("China");
        list.add("Russia");
        list.add("Australia");
        System.out.println(list); 
        Collections.sort(list, String.CASE_INSENSITIVE_ORDER);
        System.out.println("-----------Sorted List------------");
        System.out.println(list);        
    }
}

Output:

[India, US, China, Russia, Australia]
-----------Sorted List------------
[Australia, China, India, Russia, US]

Sort a List Using the list.stream().sorted() Method in Java 8

Use the code example below if you’re working with Java 8 or higher. Here, we used the stream API to sort the elements.

See the example below.

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

public class SimpleTesting{
    public static void main(String[] args){
        List<String> list = new ArrayList<>();
        list.add("India");
        list.add("US");
        list.add("China");
        list.add("Russia");
        list.add("Australia");
        System.out.println(list);
        list = list.stream().sorted().collect(Collectors.toList());
        System.out.println("-----------Sorted List------------");
        System.out.println(list);        
    }
}

Output:

[India, US, China, Russia, Australia]
-----------Sorted List------------
[Australia, China, India, Russia, US]

Sort a List Using the Guava Library in Java

Apart from the java.util package, we can use the guava library to sort the list elements. Google provides this guava library to work on collections of data.

We used the Ordering class and its natural() method to get the elements in natural sorted order. See the example below.

import java.util.ArrayList;
import java.util.List;
import com.google.common.collect.Ordering;

public class SimpleTesting{
    public static void main(String[] args){
        List<String> list = new ArrayList<>();
        list.add("India");
        list.add("US");
        list.add("China");
        list.add("Russia");
        list.add("Australia");
        System.out.println(list);
        list = Ordering.natural().sortedCopy(list); 
        System.out.println("-----------Sorted List------------");
        System.out.println(list);        
    }
}

Output:

[India, US,China, Russia, Australia]
-----------Sorted List------------
[Australia, China, India, Russia, US]

Sort a List Using the Comparator.naturalOrder() in Java

In this example, we used Comparator to get the list in a natural order. We passed the naturalOrder() method to the list.sort() method.

See the example below.

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;

public class SimpleTesting{
    public static void main(String[] args){
        List<String> list = new ArrayList<>();
        list.add("India");
        list.add("US");
        list.add("China");
        list.add("Russia");
        list.add("Australia");
        System.out.println(list);
        list.sort(Comparator.naturalOrder()); 
        System.out.println("-----------Sorted List------------");
        System.out.println(list);        
    }
}

Output:

[India, US, China, Russia, Australia]
-----------Sorted List------------
[Australia, China, India, Russia, US]

Sort a List Using the String Class in Java

If you want to ignore the string case while sorting list elements, use the compareToIgnoreCase() and the method.sort() method. We used the String class and method reference to get the sorted list elements.

See the example below.

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;

public class SimpleTesting{
    public static void main(String[] args){
        List<String> list = new ArrayList<>();
        list.add("India");
        list.add("US");
        list.add("China");
        list.add("Russia");
        list.add("Australia");
        System.out.println(list); 
        list.sort(String::compareToIgnoreCase);
        System.out.println("-----------Sorted List------------");
        System.out.println(list);        
    }
}

Output:

[India, US, China, Russia, Australia]
-----------Sorted List------------
[Australia, China, India, Russia, US]

Related Article - Java List