Wie erzwinge ich, dass max () ALLE Maximalwerte in einem Java-Stream zurückgibt?

Ich habe die Funktion max () auf Java 8-Lambdas und -Streams ein wenig getestet, und es scheint, dass im Fall, dass max () ausgeführt wird, auch wenn mehr als ein Objekt mit 0 verglichen wird, ein beliebiges Element innerhalb der verknüpften Kandidaten zurückgegeben wird ohne weitere Überlegung.

Gibt es einen offensichtlichen Trick oder eine offensichtliche Funktion für ein solches maximal zu erwartendes Verhalten, sodass alle maximalen Werte zurückgegeben werden? Ich sehe nichts in der API, aber ich bin sicher, dass es etwas Besseres geben muss als einen manuellen Vergleich.

Zum Beispiel

//myComparator is an IntegerComparator
Stream.of(1,3,5,3,2,3,5).max(myComparator).forEach(System.out::println);
//Would print 5,5 in any order.

Antworten auf die Frage(10)

Ihre Antwort auf die Frage