Lavorando su un elenco ordinato sono arrivato a un punto in cui avevo bisogno di implementare una funzione compareTo() per valori primitivi lunghi.Confronto effettivo() per il primitivo lungo
Io sono non sto cercando l'evidente implementazione ingenua, ma mi chiedevo se c'è un elegante codice one-liner per farlo (senza creare un nuovo Long (valore)).
Forse qualcosa di simile:
@Override public int compareTo(MyClass that) {
return (int) ((value - that.value) >>> 32);
}
Qualcuno può verificare che avrebbe funzionato e/o suggerire un'altra implementazione?
Questa è fondamentalmente l'implementazione ingenua che si traduce in '(x
traveh
@traveh direi correttezza rispetto alle prestazioni. Inoltre, il metodo potrebbe già essere ottimizzato dal JDK. –
@ E_net4 Sono d'accordo in generale, ma a fini argomentativi, supponiamo che si tratti di un caso speciale in cui le prestazioni sono cruciali. – traveh