TreeSet with Comparator
Home ] Up ] Set Interface ] HashSet Class ] SortedSet Interface ] TreeSet Class ] [ TreeSet with Comparator ]

 

 

If we wish, we can impose a different ordering, by specifying a Comparator

In the following example, we reverse the ordering by the use of an explicit ReverseOrderComparator class:

package examples;
import java.util.Comparator;
import java.util.Iterator;
import java.util.TreeSet;
public class ReversedTreeSetExample
{
  public static void main(String[] args)
  {
    TreeSet set = new TreeSet( new ReverseOrderComparator() );
    set.add("Mary");
    set.add("Frank");
    set.add("Joe");
    set.add("Sylvia");
    set.add("Vanessa");
    set.add("Frank");   // Duplicate
    for (Iterator iter = set.iterator(); iter.hasNext(); )
    {
      String name = (String) iter.next(); // Note required cast
      System.out.println(name);
    }
  }
}
class ReverseOrderComparator implements Comparator
{
  public int compare(Object o1, Object o2)
  {
    String s1 = (String) o1;
    String s2 = (String) o2;
    return -(s1.compareTo(s2));
    // Reverse order by reversing comparison
  }
}

which outputs:

Vanessa
Sylvia
Mary
Joe
Frank
As you can see, the results are in reverse alphabetical order.

 

This page was last modified on 02 October, 2007