2013-08-06 27 views
25

Ich habe Liste list1 in direkter Reihenfolge. List<String> list = Ordering.natural().sortedCopy(asu2); So ändern Sie die Reihenfolge. Und ich weiß nicht, wie man Methoden aus extends Klasse umschreiben kann, bitte schreibe mit Beispielen oder sprich klar. Vielen Dank.Liste in umgekehrter Reihenfolge sortieren

+0

können Sie Ihre Frage mit Beispiel ausarbeiten? –

+2

Was genau meinen Sie mit "Auftrag ändern"? Die Liste umkehren oder basierend auf einem bestimmten Regelwerk eine komplett neue Reihenfolge anwenden? – f1sh

+0

Sie möchten, dass die Liste in absteigender Reihenfolge sortiert wird. Recht? – JHS

Antwort

64

verwenden:

Collections.reverse(list); 
+1

Sortiert diese in absteigender Reihenfolge oder kehrt die Reihenfolge um, in der die Elemente eingefügt wurden? – JHS

+1

Es einfach die Reihenfolge Elemente umkehren. –

+0

+1 für Einfachheit, Lesbarkeit. – Xynariz

27

In der Klasse Collections gibt es eine Methode reverseOrder, die eine Comparator zurückgibt.

Sie können es verwenden, wie Collections.sort(list, Collections.reverseOrder());

+0

Ich würde Ihre Antwort in Betracht ziehen, da es nicht notwendig wäre, nur nach dem Zurücksetzen zu arrangieren. Ihr Ansatz ist in der Lage, zwei Operationen in einem einzigen Frame auszuführen. Ich weiß nichts über die anderen, aber danke. – Loa

7

verwenden Wenn Sie die Liste in umgekehrter natürliche sortieren möchten bestellen, hat guavas bestellung a reverse method:

List<String> list = Ordering.natural().reverse().sortedCopy(asu2); 
1

Collections.reverse(List) kehrt die angegebene Liste um. Sie können auch Guavas Lists.reverse(List) verwenden, um eine Ansicht zu erstellen, die von der angegebenen Liste in umgekehrter Reihenfolge unterstützt wird, ohne sie zu kopieren oder die ursprüngliche Liste zu ändern.

Und wenn Sie nur eine Liste erstellen möchten, die in umgekehrter Reihenfolge der natürlichen Reihenfolge sortiert ist, finden Sie unter @ assylias die Antwort über Ordering.natural().reverse().

10

Sie können jeden Typ umkehren, indem Sie einfach "-" oder ein negatives Vorzeichen vor Ihrer Rückkehr setzen.

Collections.sort(listed, new Comparator<Object>() { 

    @Override 
    public int compare(Object o1, Object o2) { 

     return -o1.getLeft().compareTo(o2.getLeft()); 

    } 
}); 
+0

Und lassen Sie hoffen, dass 'compareTo' niemals die minimale Ganzzahl zurückgibt, weil' -Integer.MIN_VALUE' immer noch 'Integer.MIN_VALUE' ist. Am sichersten wäre es, o1 wie o2.getLeft() durch o2 zu ersetzen. CompareTo (o1.getLeft()) ' – Pshemo

Verwandte Themen