Sort a linked list in java

We have to sort a given linked list according to default alphabetical order or customized sorting order.

Example – Program to sort a linked list according to default alphabetical order

import java.util.Collections;
import java.util.LinkedList;
import java.util.List;

public class SortLinkedList {

  public static void main(String args[]) {

    List<String> list = new LinkedList<String>();

    list.add("Apple");
    list.add("carrot");
    list.add("oats");
    list.add("beans");
    System.out.println("before sorting: " + list);

    Collections.sort(list);

    System.out.println("after sorting: " + list);

  }

}

Output

before sorting: [Apple, carrot, oats, beans]
after sorting: [Apple, beans, carrot, oats]

Example – Reverse alphabetical order sorting using Comparator Interface

import java.util.Collections;
import java.util.Comparator;
import java.util.LinkedList;
import java.util.List;

public class SortLinkedList {

  public static void main(String args[]) {

    List<String> list = new LinkedList<String>();

    list.add("Apple");
    list.add("carrot");
    list.add("oats");
    list.add("beans");
    System.out.println("before sorting: " + list);

    Collections.sort(list, new MyComparator());

    System.out.println("after sorting: " + list);

  }

}

class MyComparator implements Comparator {

  @Override
  public int compare(Object t1, Object t2) {

    String a1 = t1.toString();
    String a2 = t2.toString();
    return a2.compareTo(a1);// return reverse of alphabetical order
  }

}

Output

before sorting: [Apple, carrot, oats, beans]
after sorting: [oats, carrot, beans, Apple]