Aktuelles Ergebnis zu sein, ist: [-50.0, -40.0, -30.0, -20.0, -10.0, 0.0, null, null, null, null]}
Wie kann ich die Null-Werte erhalten die ersten aufsteigend sortieren und umgekehrt
Erwartetes Ergebnis: [null, null, null, null, -50.0, -40.0, -30.0, -20.0, -10.0, 0.0]}
Above-Code ist für die Werte Sortierung in Aufsteigende Reihenfolge.
Für die Werte Descending ordnen etwas wie wenn diese
[0.0, -10.0, -20.0, -30.0, -40.0, -50.0, null, null, null, null]
Mein Doppelkomparator aussehen sollte
private Comparator<Object[]> createDoubleComparator(boolean ascendingSort, boolean isDstSort)
{
if (ascendingSort)
{
return new Comparator<Object[]>() {
public int compare(Object[] o1, Object[] o2) {
if (o1[0] == null && o2[0] == null) return 0;
if (o1[0] == null) return -1;
if (o2[0] == null) return 1;
Double lhs = (Double) o1[0];
Double rhs = (Double) o2[0];
return lhs.compareTo(rhs);
}
};
}
else
{ return new Comparator<Object[]>() {
public int compare(Object[] o1, Object[] o2) {
if (o1[0] == null && o2[0] == null) return 0;
if (o1[0] == null) return 1;
if (o2[0] == null) return -1;
Double lhs = (Double) o1[0];
Double rhs = (Double) o2[0];
return rhs.compareTo(lhs);
}
};
}
}
}
Was für diese Doppel ist der Behälter? So wie es jetzt aussieht, vergleichen Sie Objekt-Arrays. Ich denke nicht, dass das richtig ist. Bitte zeigen Sie mehr von Ihrem Code. –
Werfen Sie einen Blick auf die [Comparator.nullsFirst] (https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html#nullsFirst-java.util.Comparator-) (und die andere handliche Vergleicher, zB [comparingDouble] (https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html#comparingDouble-java.util.function.ToDoubleFunction-)) – Hulk
ja ein Array von Objekten. 'result = doSort (d.Values, 0.0, t.values, valueDefault, createDoubleComparator (incresentSort, isDstSort));'. wo'd.values' und 't.values' sind Array für Objekte. –