Ich habe eine ziemlich große Stream-Pipeline und möchte es daher sauber zu halten. Ich habe den folgenden Teil eines größeren PipelineCollector returning singletonList, wenn toList leere Liste zurückgegeben
Integer defaultInt;
//...
Stream<Integer> ints;
ints.filter(/* predicate_goes_here */).collect(toSingletonIfEmptyCollector);
Wo toSingletonIfEmptyCollector
soll das gleiche tun, als Collectors.toList()
tut, wenn sie nicht leer Liste zurück und Collections.singletonList(defaultInt)
wenn Collectors.toList()
leer zurückgegeben.
Gibt es einen kürzeren Weg, um es zu implementieren (z. B. durch Erstellen von Standard-Kollektoren in JDK zur Verfügung gestellt), anstatt alle Collector
Methode von Grund auf neu zu implementieren?
Ich nehme an, Sie mutieren nicht die resultierende Liste:
Es wäre wie folgt verwendet werden. –
Es gibt eine Reihe von Hilfsmethoden, die möglicherweise in 'IntStream' über' Stream 'nützlich sind. ** Hinweis: ** "IntStream" ist ein * primitiver Stream * (nur ein kleiner Tipp) –