Ich arbeitete an einer sortierten Liste und kam zu einem Punkt, den ich brauchte, um eine compareTo() Funktion für primitive lange Werte zu implementieren.Wirksames compareTo() für primitives langes
Ich bin nicht auf der Suche nach der offensichtlichen naiven Implementierung, aber fragte mich, ob es einen eleganten Ein-Liner-Code, um das zu tun (ohne eine neue Long (Wert)) zu tun.
Vielleicht so etwas wie:
@Override public int compareTo(MyClass that) {
return (int) ((value - that.value) >>> 32);
}
Kann das jemand bestätigen funktionieren würde, und/oder eine andere Implementierung vorschlagen?
Das ist im Grunde die naive Implementierung, die in '(x
traveh
@traveh Ich würde Korrektheit über die Leistung sagen. Außerdem könnte die Methode ohnehin vom JDK optimiert werden. –
@ E_net4 Dem stimme ich im Allgemeinen zu, aber nehmen wir mal an, dass es sich um einen Spezialfall handelt, bei dem Leistung entscheidend ist. – traveh