ich ein java.util.Comparator
mit Long
implementieren möchten:konvertieren lange in int, halten positiv/negativ/0
new Comparator<Long>() {
public int compare(Long l1, Long l2) {
// (*)
}
}
Ich habe mit Operator eine Lösung ?:
:
return l1==l2 ? 0 : (l1>l2 ? 1 : -1);
Aber ich frage mich, ob es ist eine andere Möglichkeit, es zu implementieren.
(Ich versuchte return (int)(l1-l2)
, aber es ist falsch).
Warum möchten Sie Ihre Implementierung ändern? Das ist richtig. – dtech
'return (int) Math.signum (l1-l2)'? – assylias
@assylias Sie konvertieren dann ein Long zu einem Double und ein Double zurück zu einem Int. Auch diese Lösung ist möglicherweise nicht für alle Longs korrekt (z. B. Rückgabe 0 auf 2^60 und 2^60-1) – dtech