public class IterableComparator<T> extends Object implements Comparator<Iterable<T>>
| Constructor and Description |
|---|
IterableComparator() |
IterableComparator(Comparator<T> comparator) |
IterableComparator(Comparator<T> comparator,
boolean shorterFirst) |
| Modifier and Type | Method and Description |
|---|---|
int |
compare(Iterable<T> a,
Iterable<T> b)
Compares its two arguments for order.
|
static <T> int |
compareIterables(Iterable<T> a,
Iterable<T> b) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitcomparing, comparing, comparingDouble, comparingInt, comparingLong, equals, naturalOrder, nullsFirst, nullsLast, reversed, reverseOrder, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLongpublic IterableComparator()
public IterableComparator(Comparator<T> comparator)
public IterableComparator(Comparator<T> comparator, boolean shorterFirst)
public int compare(Iterable<T> a, Iterable<T> b)
ComparatorIn the foregoing description, the notation sgn(expression) designates the mathematical signum function, which is defined to return one of -1, 0, or 1 according 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 all x and y. (This implies that compare(x, y) must throw an exception if and only if compare(y, x) throws an exception.)
The implementor must also ensure that the relation is transitive: ((compare(x, y)>0) && (compare(y, z)>0)) implies compare(x, z)>0.
Finally, the implementor must ensure that compare(x, y)==0 implies that sgn(compare(x, z))==sgn(compare(y, z)) for all z.
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."
compare in interface Comparator<Iterable<T>>a - the first object to be compared.b - the second object to be compared.