Eine Liste mit stream.sorted () in Java sortieren

11

Ich möchte eine Liste aus einem Stream sortieren. Dies ist der Code, den ich verwende:

%Vor%

Vermisse ich etwas? Die Liste sortiert nicht.

Es sollte die Listen nach dem Element mit dem niedrigsten Wert sortieren.

%Vor%

Und die Druckmethode:

%Vor%     
Ivan C 09.11.2016, 23:56
quelle

3 Antworten

30

Dies ist nicht wie Collections.sort() , wo die Parameterreferenz sortiert wird. In diesem Fall erhalten Sie nur einen sortierten Stream, den Sie sammeln und einer anderen Variablen zuweisen müssen:

%Vor%

Sie haben gerade vergessen, das Ergebnis zuzuweisen:)

    
Matt 10.11.2016, 00:44
quelle
6

Verwenden Sie list.sort stattdessen:

%Vor%

oder besser noch Comparator.comparing

%Vor%

Nach diesen beiden wird list selbst sortiert.

Ihr Problem ist das list.stream.sorted gibt die sortierten Daten zurück, sortiert nicht wie erwartet.

    
River 20.07.2017 17:31
quelle
0

Es scheint gut zu funktionieren:

%Vor%

Beispieleingabe / -ausgabe

%Vor%

Sind Sie sicher, dass Sie nicht die Liste anstelle von sortedList [im obigen Beispiel] überprüfen, d. h., Sie speichern das Ergebnis von stream() in einem neuen List -Objekt und überprüfen dieses Objekt?

    
Tanmay Baid 10.11.2016 00:43
quelle

Tags und Links