As we know HashSet doesn’t sort elements, in fact it displays them in random order. While dealing with HashSet we may come across a situation where we need to sort it explicitly. we need to write a logic to sort them when required. In this article we are going to see an example where we are sorting a HashSet using two different methods.
/* Program to Sort a HashSet using two different * methods. * Method 1:By using List interface * Method 2:By using TreeSet */ import java.util.Collections; import java.util.ArrayList; import java.util.List; import java.util.HashSet; import java.util.TreeSet; public class SortingHashSetDemo { public static void main(String args[]) { HashSet<String> fruits = new HashSet<String>(); fruits.add("Orange"); fruits.add("Apple"); fruits.add("Banana"); fruits.add("Guava"); fruits.add("Pear"); System.out.println("HashSet elements before sorting: "+fruits); // Method 1: Sorting HashSet using List interface List<String> fruitList = new ArrayList<String>(fruits); Collections.sort(fruitList); // Displaying list System.out.println("HashSet elements after sorting: "+fruitList); // Method 2: Sorting using TreeSet TreeSet<String> tset = new TreeSet<String>(fruits); System.out.println("HashSet elements after using TreeSet: "+tset); } }
Output:
HashSet elements before sorting: [Pear, Guava, Apple, Banana, Orange] HashSet elements after sorting: [Apple, Banana, Guava, Orange, Pear] HashSet elements after using TreeSet: [Apple, Banana, Guava, Orange, Pear]
In method 1, we created a list and get the HashSet elements copied to it, then we have used the Collections.sort() method that sorts the elements of a list.
In method 2, we created a TreeSet and got the HashSet elements in TreeSet by providing the HashSet reference while creating TreeSet. As we are aware that TreeSet sorts its elements in ascending order, we ultimately got our HashSet elementns sorted out.
As you can see, we got the HashSet sorted out using above mentioned methods. The TreeSet method is preferred one because TreeSet is created for this purpose only.
Anilkumar says
Hello,
Thank you for providing such nice stuff
Your tutorials are very good and your way of explanation is quite good easy to understand..why don’t you provide another tutorials like Android