org.apache.commons.collections4.comparators
Class ComparableComparator<E extends Comparable<? super E>>

java.lang.Object
  extended by org.apache.commons.collections4.comparators.ComparableComparator<E>
All Implemented Interfaces:
Serializable, Comparator<E>

public class ComparableComparator<E extends Comparable<? super E>>
extends Object
implements Comparator<E>, 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:
2.0
Version:
$Id: ComparableComparator.java 1479403 2013-05-05 21:54:13Z tn $
See Also:
Collections.reverseOrder(), Serialized Form

Field Summary
static ComparableComparator<?> INSTANCE
          The singleton instance.
 
Constructor Summary
ComparableComparator()
          Constructor whose use should be avoided.
 
Method Summary
static
<E extends Comparable<? super E>>
ComparableComparator<E>
comparableComparator()
          Gets the singleton instance of a ComparableComparator.
 int compare(E obj1, E 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.
 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
 

Field Detail

INSTANCE

public static final ComparableComparator<?> INSTANCE
The singleton instance.

Constructor Detail

ComparableComparator

public ComparableComparator()
Constructor whose use should be avoided.

Please use the comparableComparator() method whenever possible.

Method Detail

comparableComparator

public static <E extends Comparable<? super E>> ComparableComparator<E> comparableComparator()
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.

Type Parameters:
E - the element type
Returns:
the singleton ComparableComparator
Since:
4.0

compare

public int compare(E obj1,
                   E obj2)
Compare the two Comparable arguments. This method is equivalent to:
((Comparable)obj1).compareTo(obj2)

Specified by:
compare in interface Comparator<E extends Comparable<? super E>>
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 - if obj1 is null, or when ((Comparable)obj1).compareTo(obj2) does
ClassCastException - if 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:
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<E extends Comparable<? super E>>
Overrides:
equals in class Object
Parameters:
object - the object to compare with
Returns:
true if equal
Since:
3.0


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