366 Stimmen

Java Array absteigend sortieren?

Gibt es eine EASY Möglichkeit, ein Array in absteigender Reihenfolge zu sortieren, wie sie eine Sortierung in aufsteigender Reihenfolge in der Arrays-Klasse ?

Oder muss ich aufhören, faul zu sein und es selbst tun :[

437voto

Damit können Sie alle Arten von Objekten sortieren

sort(T[] a, Comparator<? super T> c) 

Arrays.sort(a, Collections.reverseOrder());

Arrays.sort() kann nicht direkt verwendet werden, um primitive Arrays in absteigender Reihenfolge zu sortieren. Wenn Sie versuchen, die Arrays.sort() Methode durch Übergabe von Reverse Comparator definiert durch Collections.reverseOrder() wird die folgende Fehlermeldung ausgegeben

keine geeignete Methode gefunden für sort(int[],comparator)

Das wird gut funktionieren mit 'Array of Objects' wie Integer-Array, aber nicht mit einem primitiven Array wie int-Array.

Die einzige Möglichkeit, ein primitives Array in absteigender Reihenfolge zu sortieren, besteht darin, das Array zunächst in aufsteigender Reihenfolge zu sortieren und dann die Reihenfolge umzukehren. Dies gilt auch für zweidimensionale primitive Arrays.

116voto

Ornithopter Punkte 1942

Für eine Liste

Collections.sort(list, Collections.reverseOrder());

für ein Array

Arrays.sort(array, Collections.reverseOrder());

91voto

William Punkte 1081

Sie können dies verwenden:

    Arrays.sort(data, Collections.reverseOrder());

Collections.reverseOrder() gibt eine Comparator unter Verwendung der umgekehrten natürlichen Reihenfolge. Sie können eine invertierte Version Ihres eigenen Komparators erhalten, indem Sie Collections.reverseOrder(myComparator) .

84voto

FHDougherty Punkte 861

Eine Alternative könnte sein (für Zahlen!!!)

  1. das Array mit -1 multiplizieren
  2. sortieren
  3. noch einmal mit -1 multiplizieren

Wörtlich gesprochen:

array = -Arrays.sort(-array)

54voto

Milan Punkte 665

Ohne expliziten Komparator:

Collections.sort(list, Collections.reverseOrder());

mit explizitem Komparator:

Collections.sort(list, Collections.reverseOrder(new Comparator()));

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X