Given a HashSet in Java, the task is to sort this HashSet.
Examples:
Input: HashSet: [Geeks, For, ForGeeks, GeeksforGeeks]
Output: [For, ForGeeks, Geeks, GeeksforGeeks]
Input: HashSet: [2, 5, 3, 1, 4]
Output: [1, 2, 3, 4, 5]
The HashSet class implements the Set interface, backed by a hash table which is actually a HashMap instance. No guarantee is made as to the iteration order of the set which means that the class does not guarantee the constant order of elements over time.
It means that HashSet does not maintains the order of its elements. Hence sorting of HashSet is not possible.
However, the elements of the HashSet can be sorted indirectly by converting into List or TreeSet, but this will keep the elements in the target type instead of HashSet type.
Below is the implementation of the above approach:
Program 1: By Converting HashSet to List.
import java.util.*;
public class GFG {
public static void main(String args[])
{
HashSet<String> set = new HashSet<String>();
set.add( "geeks" );
set.add( "practice" );
set.add( "contribute" );
set.add( "ide" );
System.out.println( "Original HashSet: "
+ set);
List<String> list = new ArrayList<String>(set);
Collections.sort(list);
System.out.println( "HashSet elements "
+ "in sorted order "
+ "using List: "
+ list);
}
}
|
Output:
Original HashSet: [practice, geeks, contribute, ide]
HashSet elements in sorted order using List: [contribute, geeks, ide, practice]
Program 2: By Converting HashSet to TreeSet.
import java.util.*;
public class GFG {
public static void main(String args[])
{
HashSet<String> set = new HashSet<String>();
set.add( "geeks" );
set.add( "practice" );
set.add( "contribute" );
set.add( "ide" );
System.out.println( "Original HashSet: "
+ set);
TreeSet<String> treeSet = new TreeSet<String>(set);
System.out.println( "HashSet elements "
+ "in sorted order "
+ "using TreeSet: "
+ treeSet);
}
}
|
Output:
Original HashSet: [practice, geeks, contribute, ide]
HashSet elements in sorted order using TreeSet: [contribute, geeks, ide, practice]
Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape,
GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out -
check it out now!
Last Updated :
11 Dec, 2018
Like Article
Save Article