Sort the linked list in Java
A linked list is a data structure consisting of a group of nodes which together represent a order.
Each node is composed of a data and a reference (in other words, a link) to the next node in the order.
It allows for efficient insertion or removal of elements from any position in the order.
If you are new for java8 and want to install java8 on your machine, please follow the tutorial.
1). Using Collections.sort()
In the natural order which is imposed by the Comparable interface i.e. String are sorted in lexicographic order, Integers are sorted in numeric order and Dates are sorted in chronological order.
Collections.sort(linkedList);2). Sorting LinkedList using Collection.sort() and Comparator
You can use pass your own Comparator to define the sorting strategy. You can sort the LinkedList of String on their length.
3). Sorting LinkedList using Collection.sort() and Comparator in Java
Collections.sort(linkedList, new Comparator < string > ()
{
@Override public int compare(String s1, String s2) {
return s1.length() - s2.length();
}
});
4). Sorting LinkedList using List.sort()
It is only available in and after java*. It works similar to Collections.sort(), internally it calls the Collection.sort()
default void sort(Comparator c)
{
Collections.sort(this, c);
}
Sorting LinkedList in reverse order using Java 8
package com.javacodestuffs.core.collection.linkedlist;
import java.util.LinkedList;
import java.util.List;
import java.util.Arrays;
import java.util.Comparator;
public class SortLinkedList {
public static void main(String args[]) {
// lunar mansions (Nakshatras) used in Hindu Astrology
List<String> listOfWeightLossFood = new LinkedList <>
(Arrays.asList("Ashvini", "Bharani",
"Krittika",
"Rohini", "Mrigashīrsha", "Ardra", "Punarvasu", "Pushya",
"Ashlesha", "Maghā", "Purva Phalguni",
"Uttara Phalguni", "Hasta", "Chitra", "Swati",
"Vishakha", "Anuradha",
"Jyeshtha", "Mula", "Purva Ashadha", "Uttara Ashadha",
"Sravana", "Dhanishta",
"Shatabhisha", "Purva Bhadrapada",
"Uttara Bhadrapada", "Revati", "Abhijit"));
System.out.println("Initial Linked List : ");
System.out.println(listOfWeightLossFood);
listOfWeightLossFood.sort(Comparator.reverseOrder());
System.out.println("Sorted Linked List : ");
System.out.println(listOfWeightLossFood);
}
}
output:
Initial Linked List :
[Ashvini, Bharani, Krittika, Rohini, Mrigashīrsha, Ardra, Punarvasu, Pushya, Ashlesha, Maghā, Purva Phalguni,
Uttara Phalguni, Hasta, Chitra, Swati, Vishakha, Anuradha, Jyeshtha, Mula, Purva Ashadha, Uttara Ashadha,
Sravana, Dhanishta, Shatabhisha, Purva Bhadrapada, Uttara Bhadrapada, Revati, Abhijit]
Sorted Linked List :
[Vishakha, Uttara Phalguni, Uttara Bhadrapada, Uttara Ashadha, Swati, Sravana, Shatabhisha, Rohini,
Revati, Pushya, Purva Phalguni, Purva Bhadrapada, Purva Ashadha, Punarvasu, Mula, Mrigashīrsha,
Maghā, Krittika, Jyeshtha, Hasta, Dhanishta, Chitra, Bharani, Ashvini, Ashlesha, Ardra, Anuradha, Abhijit]
LinkedList in Java using Collections.sort() and Collections.sort(linkedList, customComparator)
package com.javacodestuffs.core.collection.linkedlist;
import java.util.Collections;
import java.util.Comparator;
import java.util.LinkedList;
public class LinkedListSorting {
public static void main(String args[]) {
LinkedList <String>linkedList = new LinkedList <>();
linkedList.add("Chitra");
linkedList.add("Phalguni");
linkedList.add("Mrigashirsha");
linkedList.add("Rohini");
linkedList.add("Magha");
linkedList.add("Anuradha");
linkedList.add("Revati");
linkedList.add("Purva");
linkedList.add("Abhijit");
System.out.println("Initial LinkedList : ");
System.out.println(linkedList);
System.out.println();
Collections.sort(linkedList);
System.out.println("Natural sorting of LinkedList : ");
System.out.println(linkedList);
System.out.println();
System.out.println("Customized sorting of LinkedList : ");
Collections.sort(linkedList, new Comparator <String>()
{
@Override public int compare(String s1, String s2)
{
return s1.length() - s2.length();
}
});
System.out.println(linkedList);
}
}
output:
Initial LinkedList :
[Chitra, Phalguni, Mrigashirsha, Rohini, Magha, Anuradha, Revati, Purva, Abhijit]
Natural sorting of LinkedList :
[Abhijit, Anuradha, Chitra, Magha, Mrigashirsha, Phalguni, Purva, Revati, Rohini]
Customized sorting of LinkedList :
[Magha, Purva, Chitra, Revati, Rohini, Abhijit, Anuradha, Phalguni, Mrigashirsha]
Elegant solution using Java8
package com.javacodestuffs.core.collection.linkedlist;
import java.util.Collections;
import java.util.Comparator;
import java.util.LinkedList;
public class LinkedListSortingJava8 {
public static void main(String args[]) {
LinkedList linkedList1 = new LinkedList ();
linkedList1.add("Chitra");
linkedList1.add("Phalguni");
linkedList1.add("Mrigashirsha");
linkedList1.add("Rohini");
linkedList1.add("Magha");
linkedList1.add("Anuradha");
linkedList1.add("Revati");
linkedList1.add("Purva");
linkedList1.add("Abhijit");
LinkedList < String > linkedList2 = linkedList1;
LinkedList < String > linkedList3 = linkedList1;
System.out.println("Initial LinkedList1 : ");
System.out.println(linkedList1);
System.out.println();
System.out.println("Initial LinkedList2 : ");
System.out.println(linkedList2);
System.out.println();
linkedList1.sort(String::compareToIgnoreCase);
linkedList2.sort((o1, o2) - >o1.compareToIgnoreCase(o2));
linkedList3.sort((a, b) - >a.compareTo(b));
System.out.println("Sorted LinkedList1 : ");
System.out.println(linkedList1);
System.out.println();
System.out.println("Sorted LinkedList2 : ");
System.out.println(linkedList2);
System.out.println();
System.out.println("Sorted LinkedList3 : ");
System.out.println(linkedList3);
System.out.println();
}
}
output:
Initial LinkedList1 :
[Chitra, Phalguni, Mrigashirsha, Rohini, Magha, Anuradha, Revati, Purva, Abhijit]
Initial LinkedList2 :
[Chitra, Phalguni, Mrigashirsha, Rohini, Magha, Anuradha, Revati, Purva, Abhijit]
Sorted LinkedList1 :
[Abhijit, Anuradha, Chitra, Magha, Mrigashirsha, Phalguni, Purva, Revati, Rohini]
Sorted LinkedList2 :
[Abhijit, Anuradha, Chitra, Magha, Mrigashirsha, Phalguni, Purva, Revati, Rohini]
Sorted LinkedList3 :
[Abhijit, Anuradha, Chitra, Magha, Mrigashirsha, Phalguni, Purva, Revati, Rohini]
Question/Articles related Sort the linked list in Java
package com.javacodestuffs.core.collection.linkedlist; import java.util.Collections; import java.util.Comparator; import java.util.LinkedList; public class LinkedListSortingJava8 { public static void main(String args[]) { LinkedList
linkedList1 = new LinkedList (); linkedList1.add("Chitra"); linkedList1.add("Phalguni"); linkedList1.add("Mrigashirsha"); linkedList1.add("Rohini"); linkedList1.add("Magha"); linkedList1.add("Anuradha"); linkedList1.add("Revati"); linkedList1.add("Purva"); linkedList1.add("Abhijit"); LinkedList < String > linkedList2 = linkedList1; LinkedList < String > linkedList3 = linkedList1; System.out.println("Initial LinkedList1 : "); System.out.println(linkedList1); System.out.println(); System.out.println("Initial LinkedList2 : "); System.out.println(linkedList2); System.out.println(); linkedList1.sort(String::compareToIgnoreCase); linkedList2.sort((o1, o2) - >o1.compareToIgnoreCase(o2)); linkedList3.sort((a, b) - >a.compareTo(b)); System.out.println("Sorted LinkedList1 : "); System.out.println(linkedList1); System.out.println(); System.out.println("Sorted LinkedList2 : "); System.out.println(linkedList2); System.out.println(); System.out.println("Sorted LinkedList3 : "); System.out.println(linkedList3); System.out.println(); } } output: Initial LinkedList1 : [Chitra, Phalguni, Mrigashirsha, Rohini, Magha, Anuradha, Revati, Purva, Abhijit] Initial LinkedList2 : [Chitra, Phalguni, Mrigashirsha, Rohini, Magha, Anuradha, Revati, Purva, Abhijit] Sorted LinkedList1 : [Abhijit, Anuradha, Chitra, Magha, Mrigashirsha, Phalguni, Purva, Revati, Rohini] Sorted LinkedList2 : [Abhijit, Anuradha, Chitra, Magha, Mrigashirsha, Phalguni, Purva, Revati, Rohini] Sorted LinkedList3 : [Abhijit, Anuradha, Chitra, Magha, Mrigashirsha, Phalguni, Purva, Revati, Rohini]
Question/Articles related Sort the linked list in Java
How to sort a linked list in java without using collections?
How to create a linked list in java?
How to print a linked list in java?
How to move a node in linked list java?
How to find middle element of linked list in java?
How to compare two linked lists in java?
How to delete a node in the linked list in java?
How to merge two linked list in java?
How to traverse a linked list java?
How to sort a linked list in java?
In this article, we have seen the Sort the linked list in Java with examples. All source code in the article can be found in the GitHub repository.
0 Comments
Post a Comment