Class ComparableComparator<E extends Comparable<? super E>>
- Type Parameters:
E- the type of objects compared by this comparator
- All Implemented Interfaces:
Serializable,Comparator<E>
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(Comparable, Comparable) compare} were null, not
Comparable, or for which
compareTo gave inconsistent results.
This is no longer the case. See compare(Comparable, Comparable) compare} for
details.
- Since:
- 2.0
- See Also:
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic <E extends Comparable<? super E>>
ComparableComparator<E> Gets the singleton instance of a ComparableComparator.intCompare the twoComparablearguments.booleanReturnstrueiff that Object is aComparatorwhose ordering is known to be equivalent to mine.inthashCode()Implement a hash code for this comparator that is consistent withequals.Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface java.util.Comparator
reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
-
Field Details
-
INSTANCE
The singleton instance.
-
-
Constructor Details
-
ComparableComparator
public ComparableComparator()Constructor whose use should be avoided.Please use the
comparableComparator()method whenever possible.
-
-
Method Details
-
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
Compare the twoComparablearguments. This method is equivalent to:((Comparable)obj1).compareTo(obj2)
- Specified by:
comparein interfaceComparator<E extends Comparable<? super E>>- Parameters:
obj1- the first object to compareobj2- the second object to compare- Returns:
- negative if obj1 is less, positive if greater, zero if equal
- Throws:
NullPointerException- if obj1 isnull, or when((Comparable)obj1).compareTo(obj2)doesClassCastException- if obj1 is not aComparable, or when((Comparable)obj1).compareTo(obj2)does
-
equals
Returnstrueiff that Object is aComparatorwhose ordering is known to be equivalent to mine.This implementation returns
trueiff<em>object</em>.{@link Object#getClass() getClass()}equalsthis.getClass(). Subclasses may want to override this behavior to remain consistent with theComparator.equals(Object)contract.- Specified by:
equalsin interfaceComparator<E extends Comparable<? super E>>- Overrides:
equalsin classObject- Parameters:
object- the object to compare with- Returns:
trueif equal- Since:
- 3.0
-
hashCode
-