Treeset to order elements in descending order
TreeSet::descendingSet
In Java 6 and later, there is a method on TreeSet
called descendingSet()
producing a NavigableSet
interface object.
public NavigableSet descendingSet()
The descending set is backed by this set, so changes to the set are reflected in the descending set, and vice-versa. If either set is modified while an iteration over either set is in progress (except through the iterator's own remove operation), the results of the iteration are undefined.
The returned set has an ordering equivalent to
Collections.reverseOrder(comparator()). The expression s.descendingSet().descendingSet() returns a view of s essentially equivalent to s.
Specified by: descendingSet in interface NavigableSet<E> Returns: a reverse order view of this set Since: 1.6
Why do you think this approach won't be optimized? The reverse order Comparator
is simply going to be flipping the sign of the output from the actual Comparator
(or output from compareTo
on the Comparable
objects being inserted) and I would therefore imagine it is very fast.
An alternative suggestion: Rather than change the order you store the elements in you could iterate over them in descending order using the descendingIterator()
method.