@FunctionalInterface public interface DoubleOrdering extends FloatOrdering
Compared to a Comparator<Double> or Ordering<Double> this
interface allows to avoid boxing and unboxing in various situations.
| Modifier and Type | Interface and Description |
|---|---|
static interface |
DoubleOrdering.Serial
A double ordering which is serializable.
|
| Modifier and Type | Field and Description |
|---|---|
static DoubleOrdering |
NATURAL_ASCENDING
Natural order of ascending
double values. |
static DoubleOrdering |
NATURAL_DESCENDING
Natural order of descending
double values. |
static DoubleOrdering |
STANDARD_ASCENDING
Standard Java order of ascending
double values. |
static DoubleOrdering |
STANDARD_DESCENDING
Inverse standard Java order of
double values. |
| Modifier and Type | Method and Description |
|---|---|
default boolean |
ascending(double v1,
double v2)
Are the two values represented in strictly ascending order?
|
default boolean |
ascendingOrSame(double v1,
double v2)
Are the two values represented in ascending order?
|
default java.util.Comparator<java.lang.Double> |
asDoubleComparator()
Use this ordering as a comparator.
|
default Ordering<java.lang.Double> |
asDoubleOrdering()
Get this ordering as a generic double ordering.
|
default java.util.Comparator<java.lang.Number> |
asNumberComparator()
View this ordering as a number comparator.
|
default Ordering<java.lang.Number> |
asNumberOrdering()
See this ordering as one working on general numbers.
|
Order |
checkDouble(double v1,
double v2)
Get the order of the two values.
|
default Order |
checkFloat(float v1,
float v2)
Get the order of the two values.
|
default boolean |
descending(double v1,
double v2)
Are the two values represented in strictly descending order?
|
default boolean |
descendingOrSame(double v1,
double v2)
Are the two values represented in descending order?
|
default boolean |
different(double v1,
double v2)
Are the two values considered different by this order?
|
static DoubleOrdering |
fromComparator(java.util.Comparator<java.lang.Double> comparator)
Convert a standard comparator of
Double into a double ordering. |
default DoubleOrdering |
inverse()
Invert this order.
|
default boolean |
same(double v1,
double v2)
Are the two values considered equal by this order?
|
ascending, ascendingOrSame, asFloatComparator, asFloatOrdering, descending, descendingOrSame, different, fromComparator, samestatic final DoubleOrdering NATURAL_ASCENDING
double values.
Besides collapsing all NaN values and ordering them between
everything else this ordering is nearer to IEEE 784 than
standard Double.compare(double, double).static final DoubleOrdering NATURAL_DESCENDING
double values.
Besides collapsing all NaN values and ordering them before
everything else this ordering is nearer to IEEE 784 than
standard Double.compare(double, double).static final DoubleOrdering STANDARD_ASCENDING
double values.
Please note that this order is broken as it considers
-0.0 < 0.0 which is not correct, for primitive
double values -0.0 == 0.0 is valid.NATURAL_ASCENDINGstatic final DoubleOrdering STANDARD_DESCENDING
double values.
Please note that this order is broken as it considers
-0.0 < 0.0 which is not correct, for primitive
double values -0.0 == 0.0 is valid.@NotNull Order checkDouble(double v1, double v2)
v1 - first valuev2 - second value@NotNull default Order checkFloat(float v1, float v2)
FloatOrderingcheckFloat in interface FloatOrderingv1 - first valuev2 - second value@NotNull default Ordering<java.lang.Number> asNumberOrdering()
default boolean ascending(double v1,
double v2)
v1 - first valuev2 - second valuetrue if v1 < v2 according to this orderingfalse if v1 >= v2 according to this orderingdescending(double, double),
ascendingOrSame(double, double),
descendingOrSame(double, double),
same(double, double),
different(double, double)default boolean ascendingOrSame(double v1,
double v2)
v1 - first valuev2 - second valuetrue if v1 <= v2 according to this orderingfalse if v1 > v2 according to this orderingascending(double, double),
descending(double, double),
descendingOrSame(double, double),
same(double, double),
different(double, double)default boolean descending(double v1,
double v2)
v1 - first valuev2 - second valuetrue if v1 > v2 according to this orderingfalse if v1 <= v2 according to this orderingascending(double, double),
ascendingOrSame(double, double),
descendingOrSame(double, double),
same(double, double),
different(double, double)default boolean descendingOrSame(double v1,
double v2)
v1 - first valuev2 - second valuetrue if v1 >= v2 according to this orderingfalse if v1 < v2 according to this orderingascending(double, double),
descending(double, double),
ascendingOrSame(double, double),
same(double, double),
different(double, double)default boolean same(double v1,
double v2)
v1 - first valuev2 - second valuetrue if v1 == v2 according to this orderfalse if v1 != v2 according to this orderingascending(double, double),
descending(double, double),
ascendingOrSame(double, double),
descendingOrSame(double, double),
different(double, double)default boolean different(double v1,
double v2)
v1 - first valuev2 - second valuetrue if v1 != v2 according to this orderfalse if v1 == v2 according to this orderingascending(double, double),
descending(double, double),
ascendingOrSame(double, double),
descendingOrSame(double, double),
same(double, double)@NotNull default DoubleOrdering inverse()
inverse in interface FloatOrdering@NotNull default java.util.Comparator<java.lang.Double> asDoubleComparator()
Double@NotNull default java.util.Comparator<java.lang.Number> asNumberComparator()
asNumberComparator in interface FloatOrderingNumber@NotNull default Ordering<java.lang.Double> asDoubleOrdering()
@NotNull static DoubleOrdering fromComparator(@NotNull java.util.Comparator<java.lang.Double> comparator)
Double into a double ordering.comparator - comparator of Double