org.apache.commons.collections.comparators

## Class ComparableComparator

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

- All Implemented Interfaces:
    Serializable, Comparator

      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: 646777 $ $Date: 2008-04-10 14:33:15 +0200 (Thu, 10 Apr 2008) $
  Author:
    Henri Yandell
  See Also:
    `Collections.reverseOrder()`, Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `ComparableComparator()` Constructor whose use should be avoided.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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`.
      Overrides:
        `hashCode` in class `Object`
      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`
      Overrides:
        `equals` in class `Object`
      Parameters:
        `object` - the object to compare with
      Returns:
        true if equal
      Since:
        Commons Collections 3.0

Copyright © 2001–2015 The Apache Software Foundation. All rights reserved.