Class ComparableComparator<E extends java.lang.Comparable<? super E>>
- java.lang.Object
-
- org.apache.commons.collections4.comparators.ComparableComparator<E>
-
- Type Parameters:
E
- the type of objects compared by this comparator
- All Implemented Interfaces:
java.io.Serializable
,java.util.Comparator<E>
public class ComparableComparator<E extends java.lang.Comparable<? super E>> extends java.lang.Object implements java.util.Comparator<E>, java.io.Serializable
AComparator
that comparesComparable
objects.This Comparator is useful, for example, for enforcing the natural order in custom implementations of
SortedSet
andSortedMap
.Note: In the 2.0 and 2.1 releases of Commons Collections, this class would throw a
ClassCastException
if either of the arguments tocompare
werenull
, notComparable
, or for whichcompareTo
gave inconsistent results. This is no longer the case. Seecompare
for details.- Since:
- 2.0
- See Also:
Collections.reverseOrder()
, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static ComparableComparator
INSTANCE
The singleton instance.
-
Constructor Summary
Constructors Constructor Description ComparableComparator()
Constructor whose use should be avoided.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static <E extends java.lang.Comparable<? super E>>
ComparableComparator<E>comparableComparator()
Gets the singleton instance of a ComparableComparator.int
compare(E obj1, E obj2)
Compare the twoComparable
arguments.boolean
equals(java.lang.Object object)
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
.
-
-
-
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 java.lang.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 twoComparable
arguments. This method is equivalent to:((Comparable)obj1).compareTo(obj2)
- Specified by:
compare
in interfacejava.util.Comparator<E extends java.lang.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:
java.lang.NullPointerException
- if obj1 isnull
, or when((Comparable)obj1).compareTo(obj2)
doesjava.lang.ClassCastException
- 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
.- Overrides:
hashCode
in classjava.lang.Object
- Returns:
- a hash code for this comparator.
- Since:
- 3.0
-
equals
public boolean equals(java.lang.Object object)
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.
-
-