Comparator Example
Home ] Up ] Comparable Interface ] Comparator Interface ] Collections Class ] Comparable Example ] [ Comparator Example ] General Applicability ]

 

 

Here's an example of sorting using a Comparator interface.

It's basically the same as the previous example, except that it uses a class that implements Comparator. We're using it to implement a case-insensitive compare.

In other words, if we want to sort using a non-natural ordering, we must use a Comparator.

package examples;
import java.util.Collections;
import java.util.Comparator;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class ComparatorSorter
{
  public static void main(String[] args)
  {
    List list = new ArrayList();
    list.add("abc");
    list.add("DEF");
    list.add("ghi");
    // Do the sort
    Collections.sort(list, new CaseInsensitiveComparator() );
    // See results
    Iterator iter = list.iterator();
    while (iter.hasNext())
    {
      System.out.println(iter.next());
    }
  }
}
class CaseInsensitiveComparator implements Comparator
{
  public int compare(Object o1, Object o2)
  {
    String s1 = (String) o1;
    String s2 = (String) o2;
    return s1.toLowerCase().compareTo( s2.toLowerCase() );
  }
}

which outputs:

abc
DEF
ghi
You can see the changes from the previous example highlighted in blue.

 

This page was last modified on 02 October, 2007