455 Stimmen

Wie sortiere ich eine Liste/ArrayList?

Ich habe eine Liste von doubles in Java und möchte das ArrayList in absteigender Reihenfolge sortieren.

Die Eingabe-ArrayList sieht wie folgt aus:

List testList = new ArrayList();

testList.add(0.5);
testList.add(0.2);
testList.add(0.9);
testList.add(0.1);
testList.add(0.1);
testList.add(0.1);
testList.add(0.54);
testList.add(0.71);
testList.add(0.71);
testList.add(0.71);
testList.add(0.92);
testList.add(0.12);
testList.add(0.65);
testList.add(0.34);
testList.add(0.62);

Das Ergebnis sollte so aussehen:

0.92
0.9
0.71
0.71
0.71
0.65
0.62
0.54
0.5
0.34
0.2
0.12
0.1
0.1
0.1

6voto

Thiago Punkte 864

Sie können das folgendermaßen tun:

List yourList = new ArrayList();
Collections.sort(yourList, Collections.reverseOrder());

Die Collection hat einen Standard-Comparator, der Ihnen dabei helfen kann.

Außerdem, wenn Sie einige neue Funktionen von Java 8 nutzen möchten, können Sie das wie folgt tun:

List yourList = new ArrayList();
yourList = yourList.stream().sorted(Collections.reverseOrder()).collect(Collectors.toList());

5voto

Sujay U N Punkte 4456

|*| Sortieren einer Liste :

import java.util.Collections;

|=> In aufsteigender Reihenfolge sortieren :

Collections.sort(NamAryVar);

|=> In absteigender Reihenfolge sortieren :

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

|*| Die Reihenfolge der Liste umkehren :

Collections.reverse(NamAryVar);

5voto

Appesh Punkte 303

In JAVA 8 ist es jetzt viel einfacher.

List alphaNumbers = Arrays.asList("one", "two", "three", "four");
List alphaNumbersUpperCase = alphaNumbers.stream()
    .map(String::toUpperCase)
    .sorted()
    .collect(Collectors.toList());
System.out.println(alphaNumbersUpperCase); // [FOUR, ONE, THREE, TWO]

-- Verwenden Sie dies für die Umkehrung

.sorted(Comparator.reverseOrder())

5voto

Franklin Okeme Punkte 59

Wenn Sie Java SE 8 verwenden, könnte Ihnen dies helfen.

// Erstellen Sie ein Comparator-Objekt mit einem Lambda-Ausdruck
Comparator compareDouble = (d1, d2) -> d1.compareTo(d2);

// Sortieren Sie die Sammlung in diesem Fall 'testList' in umgekehrter Reihenfolge
Collections.sort(testList, Collections.reverseOrder(compareDouble));

// Drucken Sie die sortierte Liste unter Verwendung von Methodenverweisen aus, die nur für SE 8 anwendbar sind
testList.forEach(System.out::println);

4voto

manikant gautam Punkte 3278

Sie können es so verwenden

ArrayList groupList = new ArrayList<>();
Collections.sort(groupList, Collections.reverseOrder());
Collections.reverse(groupList);

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