|
Here is the TreeSet example with a Comparator, converted to
using generics:
package examples;
import java.util.Comparator;
import java.util.Iterator;
import java.util.TreeSet;
public class ReversedTreeSetExample
{
public static void main(String[] args)
{
TreeSet<String> set = new TreeSet<String>( new ReverseOrderComparator() );
set.add("Mary");
set.add("Frank");
set.add("Joe");
set.add("Sylvia");
set.add("Vanessa");
set.add("Frank"); // Duplicate
for (Iterator<String> iter = set.iterator(); iter.hasNext(); )
{
String name = iter.next(); // Note NO required cast
System.out.println(name);
}
}
}
class ReverseOrderComparator implements Comparator<String>
{
public int compare(String s1, String s2)
{
return -(s1.compareTo(s2));
// Reverse order by reversing comparison
}
}
|
which outputs (same as original):
Vanessa
Sylvia
Mary
Joe
Frank
|