Class ComparableComparator
- java.lang.Object
-
- org.apache.commons.collections.comparators.ComparableComparator
-
- All Implemented Interfaces:
java.io.Serializable,java.util.Comparator
public class ComparableComparator extends java.lang.Object implements java.util.Comparator, java.io.SerializableAComparatorthat comparesComparableobjects. 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 aClassCastExceptionif either of the arguments tocomparewerenull, notComparable, or for whichcompareTogave inconsistent results. This is no longer the case. Seecomparefor details.- Since:
- Commons Collections 2.0
- See Also:
Collections.reverseOrder(), Serialized Form
-
-
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 intcompare(java.lang.Object obj1, java.lang.Object obj2)Compare the twoComparablearguments.booleanequals(java.lang.Object object)Returnstrueiff that Object is is aComparatorwhose ordering is known to be equivalent to mine.static ComparableComparatorgetInstance()Gets the singleton instance of a ComparableComparator.inthashCode()Implement a hash code for this comparator that is consistent withequals.
-
-
-
Constructor Detail
-
ComparableComparator
public ComparableComparator()
Constructor whose use should be avoided.Please use the
getInstance()method whenever possible.
-
-
Method Detail
-
getInstance
public static ComparableComparator getInstance()
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.
- Returns:
- the singleton ComparableComparator
-
compare
public int compare(java.lang.Object obj1, java.lang.Object obj2)Compare the twoComparablearguments. This method is equivalent to:((Comparable)obj1).compareTo(obj2)
- Specified by:
comparein interfacejava.util.Comparator- 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- when obj1 isnull, or when((Comparable)obj1).compareTo(obj2)doesjava.lang.ClassCastException- when 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:
hashCodein classjava.lang.Object- Returns:
- a hash code for this comparator.
- Since:
- Commons Collections 3.0
-
equals
public boolean equals(java.lang.Object object)
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 interfacejava.util.Comparator- Overrides:
equalsin classjava.lang.Object- Parameters:
object- the object to compare with- Returns:
- true if equal
- Since:
- Commons Collections 3.0
-
-