@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, same
static 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_ASCENDING
static 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)
FloatOrdering
checkFloat
in interface FloatOrdering
v1
- 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 FloatOrdering
Number
@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