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 were null, not
Comparable, or for which
compareTo gave inconsistent results.
This is no longer the case. See 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 is aComparatorwhose ordering is known to be equivalent to mine.inthashCode()Implement a hash code for this comparator that is consistent withequals.
-
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
-
hashCode
Implement a hash code for this comparator that is consistent withequals. -
equals
Returnstrueiff that Object is is aComparatorwhose ordering is known to be equivalent to mine.This implementation returns
trueiffobject.equalsgetClass()this.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
-