Interface Comparator<T>
-
public interface Comparator<T>
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description intcompare(T o1, T o2)Compares its two arguments for order.booleanequals(Object obj)Indicates whether some other object is "equal to" this comparator.
-
-
-
Method Detail
-
compare
int compare(T o1, T o2)
Compares its two arguments for order. Returns a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.In the foregoing description, the notation
sgn(expression)designates the mathematical signum function, which is defined to return one of-1,0, or1according to whether the value of expression is negative, zero or positive.The implementor must ensure that
sgn(compare(x, y)) == -sgn(compare(y, x))for allxandy. (This implies thatcompare(x, y)must throw an exception if and only ifcompare(y, x)throws an exception.)The implementor must also ensure that the relation is transitive:
((compare(x, y)>0) && (compare(y, z)>0))impliescompare(x, z)>0.Finally, the implementor must ensure that
compare(x, y)==0implies thatsgn(compare(x, z))==sgn(compare(y, z))for allz.It is generally the case, but not strictly required that
(compare(x, y)==0) == (x.equals(y)). Generally speaking, any comparator that violates this condition should clearly indicate this fact. The recommended language is "Note: this comparator imposes orderings that are inconsistent with equals."- Parameters:
o1- the first object to be compared.o2- the second object to be compared.- Returns:
- a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.
- Throws:
NullPointerException- if an argument is null and this comparator does not permit null argumentsClassCastException- if the arguments' types prevent them from being compared by this comparator.
-
equals
boolean equals(@Nullable Object obj)
Indicates whether some other object is "equal to" this comparator. This method must obey the general contract ofObject.equals(Object). Additionally, this method can returntrueonly if the specified object is also a comparator and it imposes the same ordering as this comparator. Thus,comp1.equals(comp2)implies thatsgn(comp1.compare(o1, o2))==sgn(comp2.compare(o1, o2))for every object referenceo1ando2.Note that it is always safe not to override
Object.equals(Object). However, overriding this method may, in some cases, improve performance by allowing programs to determine that two distinct comparators impose the same order.- Overrides:
equalsin classObject- Parameters:
obj- the reference object with which to compare.- Returns:
trueonly if the specified object is also a comparator and it imposes the same ordering as this comparator.- See Also:
Object.equals(Object),Object.hashCode()
-
-