Implementing a Comparator for a class : Comparator Interface « Collections « Java Tutorial






import java.util.Arrays;
import java.util.Comparator;

class CompTypeComparator implements Comparator {
  public int compare(Object o1, Object o2) {
    int j1 = ((Integer) o1);
    int j2 = ((Integer) o2);
    return (j1 < j2 ? -1 : (j1 == j2 ? 0 : 1));
  }
}

public class MainClass {
  public static void main(String[] args) {
    Integer[] a = new Integer[10];
    for (int i = 0; i < a.length; i++) {
      a[i]= i;
    }

    System.out.println("before sorting, a = " + Arrays.asList(a));
    Arrays.sort(a, new CompTypeComparator());
    System.out.println("after sorting, a = " + Arrays.asList(a));
  }
}
/**/
before sorting, a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
after sorting, a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]








9.40.Comparator Interface
9.40.1.System-Defined Comparable Classes
9.40.2.Writing Your own Comparator
9.40.3.Getting reverse order comparator
9.40.4.Implementing a Comparator for a class
9.40.5.Use a custom comparator.
9.40.6.Sort an array of strings in reverse order.
9.40.7.Sort an array of strings, ignore case difference.
9.40.8.Use a comparator to sort accounts by last name.
9.40.9.Comparator uses a Collator to determine the proper, case-insensitive lexicographical ordering of two strings.
9.40.10.Calendar Comparator
9.40.11.Invertible Comparator