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

0voto

Bruno F Punkte 31

Ein alternativer Weg, eine Liste zu sortieren, ist die Verwendung des Collections-Frameworks;

In diesem Fall wird das SortedSet verwendet (das Bean in der Liste sollte vergleichbar sein, also ist Double in Ordnung):

List testList;
...
SortedSet sortedSet= new TreeSet();
for(Double number: testList) {
   sortedSet.add(number);
}
orderedList=new ArrayList(sortedSet);

Im Allgemeinen, um nach einem Attribut eines Beans in der Liste zu sortieren, legen Sie alle Elemente der Liste in einer SortedMap ab, wobei das Attribut als Schlüssel verwendet wird, und rufen Sie dann die values() der SortedMap ab (das Attribut sollte vergleichbar sein):

List testList;
...
SortedMap sortedMap= new TreeMap();
for(Bean bean : testList) {
   sortedMap.put(bean.getAttribute(),bean);
}
orderedList=new ArrayList(sortedMap.values());

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