Gibt es einen kurzen Weg, um sowohl den Min- als auch den Max-Wert eines Streams (basierend auf einem Komparator) in einem Durchgang zu extrahieren?Kurzer Weg, um sowohl den Min- als auch den Max-Wert von Java 8 zu erhalten
Es erscheinen viele Möglichkeiten, um die minimalen und maximalen Werte individuell zu bekommen, oder ich kann den Strom in ein temporäres Objekt sortieren, zum Beispiel:
List<T> sorted = Stream.of(...).sorted().collect(Collectors.toList());
T min = sorted.get(0);
T max = sorted.get(sorted.size() - 1);
Aber das ist nicht präzise und erfordert eine Zuweisung temporäres Objekt Ich würde lieber kein temporäres Objekt zuweisen oder zwei Durchläufe durch den Stream machen. Gibt es eine Alternative?
Pair<T> extent = Stream.of(...).???
Haben Sie darüber nachgedacht einen Sammler wie [IntSummaryStatistics] (https://docs.oracle.com/javase/8/docs/api/java/util/IntSummaryStatistics.html)? Sie können dem Muster folgen, vorausgesetzt, es handelt sich nicht um Zahlen. –