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
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic <E extends Comparable<? super E>>
ComparableComparator<E>Gets the singleton instance of a ComparableComparator.int
Compare the twoComparable
arguments.boolean
Returnstrue
iff that Object is is aComparator
whose ordering is known to be equivalent to mine.int
hashCode()
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, wait
Methods 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 twoComparable
arguments. This method is equivalent to:((Comparable)obj1).compareTo(obj2)
- Specified by:
compare
in 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
public int hashCode()Implement a hash code for this comparator that is consistent withequals
. -
equals
Returnstrue
iff that Object is is aComparator
whose ordering is known to be equivalent to mine.This implementation returns
true
iffobject.
equalsgetClass()
this.getClass()
. Subclasses may want to override this behavior to remain consistent with theComparator.equals(Object)
contract.- Specified by:
equals
in interfaceComparator<E extends Comparable<? super E>>
- Overrides:
equals
in classObject
- Parameters:
object
- the object to compare with- Returns:
true
if equal- Since:
- 3.0
-