org.apache.commons.collections.comparators

Class ComparableComparator

public class ComparableComparator extends Object implements Comparator, Serializable

A {@link Comparator Comparator} that compares {@link Comparable 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 {@link ClassCastException} if either of the arguments to {@link #compare(Object, Object) compare} were null, not {@link Comparable Comparable}, or for which {@link Comparable#compareTo(Object) compareTo} gave inconsistent results. This is no longer the case. See {@link #compare(Object, Object) compare} for details.

Since: Commons Collections 2.0

Version: $Revision: 1.15 $ $Date: 2004/05/15 13:24:11 $

Author: Henri Yandell

See Also: java.util.Collections#reverseOrder()

Constructor Summary
ComparableComparator()
Constructor whose use should be avoided.
Method Summary
intcompare(Object obj1, Object obj2)
Compare the two {@link Comparable Comparable} arguments.
booleanequals(Object object)
Returns true iff that Object is is a {@link Comparator Comparator} whose 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 with {@link #equals(Object) equals}.

Constructor Detail

ComparableComparator

public ComparableComparator()
Constructor whose use should be avoided.

Please use the {@link #getInstance()} method whenever possible.

Method Detail

compare

public int compare(Object obj1, Object obj2)
Compare the two {@link Comparable Comparable} arguments. This method is equivalent to:
((Comparable)obj1).compareTo(obj2)

Parameters: obj1 the first object to compare obj2 the second object to compare

Returns: negative if obj1 is less, positive if greater, zero if equal

Throws: NullPointerException when obj1 is null, or when ((Comparable)obj1).compareTo(obj2) does ClassCastException when obj1 is not a Comparable, or when ((Comparable)obj1).compareTo(obj2) does

equals

public boolean equals(Object object)
Returns true iff that Object is is a {@link Comparator Comparator} whose ordering is known to be equivalent to mine.

This implementation returns true iff object.{@link Object#getClass() getClass()} equals this.getClass(). Subclasses may want to override this behavior to remain consistent with the {@link Comparator#equals(Object)} contract.

Parameters: object the object to compare with

Returns: true if equal

Since: Commons Collections 3.0

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

hashCode

public int hashCode()
Implement a hash code for this comparator that is consistent with {@link #equals(Object) equals}.

Returns: a hash code for this comparator.

Since: Commons Collections 3.0

Copyright © 2001-2008 Apache Software Foundation. All Rights Reserved.