How-to einen Strom von Komparatoren verketten und anwenden?

8

Ich habe einen Strom unsortierter Elemente und einen Strom von Komparatoren. Ich möchte alle Komparatoren mit "thenComparing" (Multisort) auf den Stream anwenden Gibt es einen eleganteren Weg als der folgende Code, um dies zu erreichen?

%Vor%     
jack 15.09.2014, 14:08
quelle

2 Antworten

6

Verwenden Sie keinen Identitätswert für Comparator s. Wenn der comparators -Stream leer ist (d. H. Keine Comparator enthält), sollten Sie nicht sortieren:

%Vor%

Beachten Sie, dass der comparators -Stream nur ein einziges Comparator enthält und dass Comparator das Ergebnis der Reduktion ist.

Die Methodenreferenz, die an Optional.map übergeben wurde, könnte etwas Erfahrung erfordern, um sich daran zu gewöhnen. Es lohnt sich also, die ausführlichere Lambda-Syntax zu verwenden, um zu zeigen, was dort vor sich geht:

%Vor%

Das ist eine Frage des Programmierstils oder der persönlichen Vorlieben und kann sich im Laufe der Zeit ändern.

    
Holger 15.09.2014, 14:36
quelle
4

Wenn Sie den Vorschlag von Mark Peters verwenden und ihn mit einer Methodenreferenz mischen, können Sie Ihren Komparator folgendermaßen schreiben:

%Vor%

Oder etwas von Holger stehlen:

%Vor%     
assylias 15.09.2014 14:22
quelle

Tags und Links