Class ComparableComparator<E extends java.lang.Comparable<? super E>>
- java.lang.Object
-
- org.apache.openjpa.lib.util.collections.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.SerializableAComparatorthat comparesComparableobjects.This Comparator is useful, for example, for enforcing the natural order in custom implementations of
SortedSetandSortedMap.Note: In the 2.0 and 2.1 releases of Commons Collections, this class would throw a
ClassCastExceptionif either of the arguments tocomparewerenull, notComparable, or for whichcompareTogave inconsistent results. This is no longer the case. Seecomparefor details.- Since:
- 2.0
- See Also:
Collections.reverseOrder(), Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static ComparableComparatorINSTANCEThe 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.intcompare(E obj1, E obj2)Compare the twoComparablearguments.booleanequals(java.lang.Object object)Returnstrueiff 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 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 twoComparablearguments. This method is equivalent to:((Comparable)obj1).compareTo(obj2)
- Specified by:
comparein 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:
hashCodein classjava.lang.Object- Returns:
- a hash code for this comparator.
- Since:
- 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.
-
-