## org.apache.commons.collections.comparators
Class ComparableComparator

    java.lang.Object
      org.apache.commons.collections.comparators.ComparableComparator

All Implemented Interfaces:
  Comparator, Serializable

public class ComparableComparator
extends Object
implements Comparator, Serializable

A `Comparator` that compares `Comparable` objects.

This Comparator is useful, for example, for enforcing the natural order in custom implementations of SortedSet and SortedMap.

Note: In the 2.0 and 2.1 releases of Commons Collections, this class would throw a `ClassCastException` if either of the arguments to `compare` were `null`, not `Comparable`, or for which `compareTo` gave inconsistent results. This is no longer the case. See `compare` for details.

Since:
  Commons Collections 2.0
Version:
  $Revision: 1.15 $ $Date: 2004/05/15 13:24:11 $
Author:
  Henri Yandell
See Also:
  `Collections.reverseOrder()`, Serialized Form

Constructor Summary
`ComparableComparator()` Constructor whose use should be avoided.

Method Summary
`int` `compare(Object obj1, Object obj2)` Compare the two `Comparable` arguments.
`boolean` `equals(Object object)` Returns `true` iff that Object is is a `Comparator` whose ordering is known to be equivalent to mine.
`static ComparableComparator` `getInstance()` Gets the singleton instance of a ComparableComparator.
`int` `hashCode()` Implement a hash code for this comparator that is consistent with `equals`.

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### ComparableComparator

    public ComparableComparator()

  Constructor whose use should be avoided.

  Please use the `getInstance()` method whenever possible.

Method Detail

### getInstance

    public static ComparableComparator getInstance()

  Gets the singleton instance of a ComparableComparator.

  Developers are encouraged to use the comparator returned from this method instead of constructing a new instance to reduce allocation and GC overhead when multiple comparable comparators may be used in the same VM.

  Returns:
    the singleton ComparableComparator

### compare

    public int compare(Object obj1,
                       Object obj2)

  Compare the two `Comparable` arguments. This method is equivalent to:

      ((Comparable)obj1).compareTo(obj2)

  Specified by:
    `compare` in interface `Comparator`
  Parameters:
    `obj1` - the first object to compare
    `obj2` - the second object to compare
  Returns:
    negative if obj1 is less, positive if greater, zero if equal
  Throws:
    `NullPointerException` - when obj1 is `null`, or when `((Comparable)obj1).compareTo(obj2)` does
    `ClassCastException` - when obj1 is not a `Comparable`, or when `((Comparable)obj1).compareTo(obj2)` does

### hashCode

    public int hashCode()

  Implement a hash code for this comparator that is consistent with `equals`.

  Returns:
    a hash code for this comparator.
  Since:
    Commons Collections 3.0

### equals

    public boolean equals(Object object)

  Returns `true` iff that Object is is a `Comparator` whose ordering is known to be equivalent to mine.

  This implementation returns `true` iff `object.`getClass()`` equals `this.getClass()`. Subclasses may want to override this behavior to remain consistent with the `Comparator.equals(Object)` contract.

  Specified by:
    `equals` in interface `Comparator`
  Parameters:
    `object` - the object to compare with
  Returns:
    true if equal
  Since:
    Commons Collections 3.0

Copyright © 2001-2005 Apache Software Foundation. All Rights Reserved.