public abstract class AddressComparator extends Object implements Comparator<AddressItem>
| Modifier and Type | Class and Description |
|---|---|
static class |
AddressComparator.CountComparator
CountComparator first compares two address items by count, first by bit count for dissimilar items,
AddressItem.getBitCount(), then by count of values for similar items, (AddressItem.getCount()) and if both match,
defers to the address item values for comparison. |
static class |
AddressComparator.ValueComparator
ValueComparator is similar to the default comparator CountComparator in the way they treat addresses representing a single address.
|
| Modifier and Type | Method and Description |
|---|---|
int |
compare(Address one,
Address two) |
int |
compare(AddressDivisionSeries one,
AddressDivisionSeries two) |
int |
compare(AddressGenericDivision one,
AddressGenericDivision two) |
int |
compare(AddressItem one,
AddressItem two)
Compares its two arguments for order.
|
int |
compare(AddressSection one,
AddressSection two) |
int |
compare(AddressSegment one,
AddressSegment two) |
int |
compare(IPAddressSeqRange one,
IPAddressSeqRange two) |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitcomparing, comparing, comparingDouble, comparingInt, comparingLong, equals, naturalOrder, nullsFirst, nullsLast, reversed, reverseOrder, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLongpublic int compare(AddressSection one, AddressSection two)
public int compare(AddressItem one, AddressItem two)
java.util.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<AddressItem>one - the first object to be compared.two - the second object to be compared.public int compare(AddressDivisionSeries one, AddressDivisionSeries two)
public int compare(AddressSegment one, AddressSegment two)
public int compare(IPAddressSeqRange one, IPAddressSeqRange two)
public int compare(AddressGenericDivision one, AddressGenericDivision two)