I need an example on how to use a comparable class on a HashSet
to get an ascending order. Let’s say I have a HashSet
like this one:
HashSet<String> hs = new HashSet<String>();
How can I get hs
to be in ascending order?
Use a TreeSet
instead. It has a constructor taking a Comparator
. It will automatically sort the Set
.
If you want to convert a HashSet
to a TreeSet
, then do so:
Set<YourObject> hashSet = getItSomehow();
Set<YourObject> treeSet = new TreeSet<YourObject>(new YourComparator());
treeSet.addAll(hashSet);
// Now it's sorted based on the logic as implemented in YourComparator.
If the items you have itself already implements Comparable
and its default ordering order is already what you want, then you basically don't need to supply a Comparator
. You could then construct the TreeSet
directly based on the HashSet
. E.g.
Set<String> hashSet = getItSomehow();
Set<String> treeSet = new TreeSet<String>(hashSet);
// Now it's sorted based on the logic as implemented in String#compareTo().