Class ComparableComparator<E extends 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:
Serializable,Comparator<E>
public class ComparableComparator<E extends Comparable<? super E>> extends Object implements Comparator<E>, Serializable
AComparatorthat 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 Comparable<? super E>>
ComparableComparator<E>comparableComparator()Gets the singleton instance of a ComparableComparator.intcompare(E obj1, E obj2)Compare the twoComparablearguments.booleanequals(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.-
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 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 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 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
public boolean equals(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 interfaceComparator<E extends Comparable<? super E>>- Overrides:
equalsin classObject- Parameters:
object- the object to compare with- Returns:
trueif equal- Since:
- 3.0
-
-