Collections.sort mit zwei Bedingungen?

Diskutiere Collections.sort mit zwei Bedingungen? im Java Basics - Anfänger-Themen Bereich.
B

beta20

Hallo zusammen,

ich versuche mich gerade daran Listen zu sortieren...

Im Moment habe ich folgende Sortierung:

Java:
    Collections.sort(resultList, new Comparator<MyClass>() {
                public int compare(MyClass element2, MyClass element1) {
                    int compared = Double.compare(element2.getDistance(), element1.getDistance());
                    return compared;
                }
            });
Das funktioniert nun auch soweit...
Was ich nun aber noch machen möchte ist, dass ich einen zweiten Parameter habe, sodass die Sortierung von zwei Paramater abhängig ist.
Also von:
a) Distanz
b) Priorität (elemen1.getPriority())

Wie kann ich das machen?
 
krgewb

krgewb

Ich mache das immer so
Java:
personen.sort(Comparator.comparingLong(Person::holeId).thenComparingInt(Person::holeAlter));
 
T

tommysenf

Auch wenn die Variante von @krgewb zu bevorzugen ist, hier noch mal der Vollständigkeit halber:

Java:
Collections.sort(resultList, new Comparator<MyClass>() {
public int compare(MyClass element2, MyClass element1) {
int compared = Double.compare(element2.getDistance(), element1.getDistance());
if(compared == 0) {
       compared = Double.compare(element2.getPriority(), element1.getPriority());
}
return compared;
}
});
 
Thema: 

Collections.sort mit zwei Bedingungen?

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben